Python高档爬虫(三):数据存储以及多线程

访客5年前关于黑客接单450

本文咱们就两个方面来评论怎么改善咱们的爬虫:数据存储和多线程,当然我供认这是为咱们今后要评论的一些东西做衬托。
意图:一般咱们需求对爬虫捕捉的数据进行剖析,处理,再次使用或许格局化,明显咱们不能只是把爬虫捕捉到的数据在内存中处理,然后打印在屏幕上。在本章,我将介绍几种干流的数据存储 *** 。爬虫处理数据的才能往往是决议爬虫价值的决议性要素,一起一个安稳的存储数据的 *** 也肯定是一个爬虫的价值表现。
别的,选用多开线程的爬虫,发明多个并行线程和谐作业也肯定是进步爬虫功率,下降失败率的好 *** 。
0×01 引导
咱们就接下来要讲的部分做一个简略的引导,关于数据存储 *** :
1、 存储索引或许直接下载数据
2、CSV
3、MySQL
关于线程:
假如读者并不会python的线程处理,能够参阅这篇文章。
分为函数式和类包装,这两个 *** 进行线程处理。
0×02 数据存储:存储索引或许直接下载数据
关于这一点我觉得没有必要做深化的解说,因为这一点咱们在前几篇文章中或多或少都有触摸:比方制造sitemap:这儿存储了整个网站你需求的链接,比方抓取freebuff文章生成.docx文档的这一节,这些其实都归于本节所说的数据存储 *** 。那么就本节而言,我再介绍一个比如,爬取一个freebuf产品列表区域一切的图片(听起来仍是挺风趣的吧!?)
过程1:了解网站结构
过程2:编写脚本
过程3:测验
首要咱们需求了解一下咱们的方针(为了防止广告嫌疑,这儿仍是以freebuf作为方针吧)

检查元素发现下面的div标签包含了单个的产品信息,
Div(class=nall-news)->div(class=col- *** 6col-md-lg-4 mall-product-list)->div(class=photo)->a->img
这样咱们就轻松加愉快地找到了img地点的当地,那么依据这些,咱们能够指定简略的计划:获取产品的地点的标签,然后因为产品标签的一致性,咱们能够一层一层索引下去找到图片的方位,当然有个不稳妥的 *** 便是,获取的直接获取img,(走运的是,在这个比如中只存在一个img标签),咱们测验从简,节省时刻,那么一两分钟咱们就写出了自己的脚本:
import urllib
from bs4 import BeautifulSoup
import re
url = 'http://shop.freebuf.com/'
print "prepare&reading to read theweb"
data = urllib.urlopen(url).read()
print data
print "parsing ... ... ... "
soup = BeautifulSoup(data)
#
itemlist =soup.findAll(name='div',attrs={'class':'col- *** -6 col-md-4 col-lg-4mall-product-list'})
for item in itemlist:
print item.img
这样咱们就在自己的debug I/O看到了打印出的九个img标签:

然后咱们用曾经学到的技术,就满足把这些图片dump下来了,
完善脚本!
import urllib
from bs4 import BeautifulSoup
import re
url = 'http://shop.freebuf.com/'
print "prepare&reading to read theweb"
data = urllib.urlopen(url).read()
print data
print "parsing ... ... ... "
soup = BeautifulSoup(data)
#
itemlist = soup.findAll(name='div',attrs={'class':'col- *** -6col-md-4 col-lg-4 mall-product-list'})
for item in itemlist:
"""
为了适配图片的格局,咱们这儿这样处理。
不过不是肯定的,某些时分这样做就不适宜:
"""
   print item.img['src'][-4:]
"""
urlretrieve这个 *** 是咱们曾经触摸过的,用于下载图片,还能够下载整个页面:
"""
urllib.urlretrieve(url=item.img['src'],filename=item.img['alt']+item.img['src'][-4:])
然后咱们能够看一下作用,这样做的优点便是防止下来一大堆无关的图片,(有些时分咱们下载整站,然后提取图片会发现各种图片混在一起了,那样的确烦得很):

作用能够说是还不错吧,当然我懒并没有把图片树立文件夹存起来。
0×03 数据存储:CSV
CSV(comma-separated values),是现在比较盛行的一种文件存储格局。被Excel和许多的应用程序支撑。CSV文件存储的比如如下:
Fruit,cost
Apple,1.00
Banana,0.30
Pear,1.25
看起来便是表格的压缩版,其实真的没有什么古怪的,这个很简略的对吧?当然,咱们都能想到这种 *** 存储表格再好不过了。不过笔者在这儿主张:假如你只要一个table要处理,复制粘贴应该是比这样快,假如一堆table要处理,或许是要从各种数据中挑选出表格,然后组合成一张新表,这样无疑能够加速你的速度。
那么咱们就举一个比如来介绍一个下咱们下一个比如。一定是一个风趣的体会:
作为上一个比如的拓宽:咱们腰身成一个.csv文件,存储每个产品的称号和需求的金币数。

咱们调查一下详细的金币方位,产品信息都在哪里?笔者信任咱们现已看到了,那么接下来咱们得先收拾一下获取info的 *** :
class="a4c0-5f2f-b462-b602 col- *** -6 col-md-4col-lg-4 mall-product-list">->div(class=info)
只是一步咱们就能够得到信息方位。
Div(class=info)->h4->产品信息

[1] [2] [3]  黑客接单网

相关文章

qq空间破解器,哪里找黑客攻击传奇私服,黑客找盗号

@代表刺进小写字母一旦监听器发动,咱们将需求生成在受害机器上履行的有用载荷。 从Attacks -> Web Drive-by菜单中单击“Scripted Web Delivery”,如下图所示...

能接单的黑客微信群_找黑客盗号去哪找

在大多数编程言语中,一般切割作业的方法是运用一种叫做线程的东西,就像有多个人在一个项目上作业。 假如你有彼此独立的使命,你能够给他们不同的线程。 然后,这两个线程能够一起处理独自的使命。 例如,你能够...

约单有黑客接单的平台_盗号在哪里找黑客

脚本转化日志 int64 appcache_document_was_loaded_from); export AFLSMART=$(pwd)/aflsmart约单有黑客接单的平台,盗号在哪里找黑客...

简略验证码辨认及东西编写思路

 Author:crystal_lz@伏宸安全实验室 注:此文章只适宜简略验证码,最终也将编写的东西附上以及要害部分代码和运用说明文档 0x00 简介 虽然验证码发展到现在有许多人类都难以辨认的状况了...

微信申诉失败怎么回事,找国外黑客被骗,我要找黑客帮忙

(1)关于其间一小部分的网站来说,进犯者会将歹意脚本注入至HTML源文件的顶部,即标签之前。 点击 [会员] 菜单,咱们能够看到当时有两个用户,一个是管理员admin,另一个是test1;以源码,软件...

帮忙盗号-qq业务乐园网站

repeated Command commands = 1;· Palo Alto Network研究人员发布了对歹意软件ComboJack的剖析,该歹意软件能够替换买卖中加密钱银的地址,然后盗取比特...