Scrapy框架
一.解析数据
1)先大致规划一下需要几个函数,可以用pass来先保存语法的完整性
2)函数1跳转函数2使用yield
这里的yield与return相似,可以返回一个值,但是不会结束以后的代码,所以在scrapy框架中几乎使用yield
1.先在 def parse(self, response)中写入(这个函数是框架自带的,这里的response没有content属性)
yield scrapy.Requesrt(
# url: 爬取的网址
url = response.url,
# callback回调,当网页下载好以后传给谁去解析
callback =
# 爬取过的也会再次爬取,如果不设置这个参数,scrapy框架会默认的认为以前爬过的数据就不会再次爬取,它这是为了防止数据重复性.
dont_filter = True
)
2. scrapy框架自带一种解析方式基于lxml
建议使用xpath来解析网页获取数据
接着在你自定义的相关函数中使用xpath解析网页
在接着写
yield scrapy.Request(
url = 这里的地址就写你需要用地址
callback =
# meta 负责传输数据,类型是字典
meta = {}
dont_filter = True
)
二.存储数据
点开items.py文件
可以新建一个class类,()里写scrapy.Item
item用于组装爬虫数据
里面的字段根据实际情况定义即可,一般来说字段名和变量名保持一致
数据 = scrapy.Fileld()
要保存多少数据就写多个,如果有文件路径也写个
注意: 需要再爬虫代码文件中引用该函数
from ..items import ImgInfoItem
三.运行爬虫name为51job的爬虫文件(有两种)
1)在pycharm自带的命令窗口输入:scrapy crawl 51job
注释: 运行爬虫name为51job的爬虫文件
2)在爬虫的主文件内新建一个.py文件命名为run(在setting.py的上一级目录中)
写入以下代码:
from scrapy import cmdline
cmdline.execute(['scrapy', 'crawl', '51job, '-o', 'img.csv', '-s', 'FEED_EXPORT_ENCODING=gb18030'])(写前三个就可以运行爬虫了,后面几个是这是写入表格文件的参数)
补充:
然后运行爬虫,这样就写入表格当中了.