安装:pip install scrapy
优点:在scrapy提供的模板的基础上改写部分代码,减少了自行编写的代码量
缺点:要在CMD界面和python编辑界面间来回切换;无法提交cookie
# 基本流程
- scrapy shell 调试(CMD界面)
输入【scrapy shell 网址】或【scrapy shell -s USER_AGENT = ‘Mozilla/5.0’ 网址】
确保response的代码为【200】,response的网址与请求网址一致
- 在浏览器中查看请求头:F12——Network——F5——选择任意资源——Request Header
- 创建scrapy项目(CMD界面)
【cd 目录路径】——Enter——输入【scrapy startproject ZhipinSpider】
效果:创建【ZhipinSpider】文件夹,只需要修改文件内部分文件,即可实现爬虫功能
-
改写items.py
定义项目要爬取的内容(属性),格式:【xxx = scrapy.Field()】 -
创建模板py文件(CMD界面)
【cd 目录路径】——Enter——输入【scrapy genspider 文件名 域名】- 路径为spiders文件夹的上级,创建的文件在spiders文件夹内
- 用genspider生成的类需要手动保存为UTF-8字符集,以免引发SyntaxError
-
改写模板内的parse方法
- 构建表达式提取信息(效率:XPath > CSS > HTML > RE)
- 用yield返回可迭代结果——注意不用return(会使循环中断)
- 爬取下一页(可选)
for i in response.xpath():
p = "..."
item = ZhipinspiderItem()
item['xxx'] = i.xpath(p)
yield item
#爬取下一页:找到下一页的链接,用Request访问。yield+callback实现递归操作
p_next = '...'
new_links = response.xpath(p_next).extract()
if new_links and len(new_Links) > 0:
new_link = new_links