scarpy的基本使用笔记


 
 

scarpy 非常好用,也非常简单的爬虫工具,介绍一下这个工具的使用方法

首先是下载: pip install scarpy #简单的一句话就下载完成了

 
 

创建项目: scrapy startproject xinlang_spider #简单的一句话创建了一个文件列表

类似这样:

很好,这个文件的内容分别是,

spiders(写你具体要爬取的任务),

items(爬出来的字段保存在这里),

middlewares(中间件,一般不用你写,当然我也没了结过),

piplines(对爬出来的数据进行检验,不用也以),

settings(爬虫的很多东西要在这里配置,比如cokkie,并发数之类)

这几个是最主要的,其他的都是我自己写的

 
 

接下来你需要知道在spider文件里有一个spider.py的文件

这个文件已经给你写好了部分代码

像这样:

系统创建的范本继承的类是比较老试的,可以吧BaseSpider删掉

换成这样:

继承(scrapy.Spider)貌似是更好的选择

来看看这个类需要写的东西:

name(这个必须写,执行的时候会用name区分不同的项目)

allowd_domains(这个写你要爬行的网站的主地址)

start_urls(列表里写你需要爬行的地址,写多少个都行)

然后你需要在这个类里面写一个名字叫parse的函数

像这样:

class xinalng_spider(scrapy.Spider):

name='xinalng_spider'

allowd_domains=['http://vip.stock.finance.sina.com.cn/']

start_urls=['http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_FuQuanMarketHistory/stockid/sh600004.html?year=2017&jidu=1',

'http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_FuQuanMarketHistory/stockid/sh600004.html?year=2016&jidu=3']

def parse(self,response):

print response.xpath('div')

scrapy crawl xinalng_spider 执行一下,这个是执行scrapy的语句

嗯 现在response里面装的就是你爬行返回来的数据:

你需要做的就是解析一下他,

-------------------------------------------------------------------------------------------------

xpath(主要用于分割数据)和extract(主要用于序列化得到的数据)是这里比较常用的函数

response.xpath('')

xpath里面放的参数,就是你html里面每个标签的节点,你放哪个节点,他就返回哪个节点,

比如xpath('div/li')就是取回html页面上的所有div标签下面的li标签

xpath('div/li/test()')test是个函数,返回标签里的数据

xpath('div[@class='show']')选取类名为'show'的div标签

xpaht('div[contnins(@class,'show')]')这样也行

-------------------------------------------------------------------------------------------------

把标签选出来,再提取里面的数据,通过extract把数据序列化成列表

msg=response.xpath('div[@class='show']').extract()

-------------------------------------------------------------------------------------------------

也可以通过re()这个函数队提取的数据进行正则匹配

比如sel.xpath('td/div/text()').re(r'^\d*.\d*$')取出带小数位数的数组

sel.xpath('td/div/text()').re(r'\d{4}-\d{2}-\d{2}') 取出一个2012-02-02类似的日期

re返回的也一样是列表

-------------------------------------------------------------------------------------------------

这样msg里面保存的就是你提取的数据了,可以对数据进行保存或者处理工作

-------------------------------------------------------------------------------------------------

获取到msg后你可以 yield msg 遍历msg并打印到shell

再通过 scrapy crawl xinalng_spider -o test.json 保存在json文件里,查看一下数据的完整性

未完待续....










猜你喜欢

转载自blog.csdn.net/u014368609/article/details/54291098
今日推荐