如何使用scrapy框架爬取网页完整数据
项目准备
开启一个有模板的scrapy项目,在这里有scrapy经验的朋友应该都比较熟练了。进入到创建好的虚拟环境当中运行以下shell代码。
scrapy startproject [projectname]
cd projectname
scrapy genspider -t crawl spidername ["spiderdomain"]
完成之后就可以打开开发工具(pycharm),运行项目
分析简书页面
项目的目的是爬取简书的所有文章,所以从简书首页url着手。然后通过f12抓包查看文章url的基本格式可以观察到,打开一篇文章的url为https://www.jianshu.com/p/d97946dfdcef,而在首页显示的url为项目url模板格式可以用正则匹配全站文章的url,匹配站内url将follow设为true。
rules = ( Rule(LinkExtractor(allow=r'.*/p/[0-9a-z]{12}.*'), callback='parse_detail', follow=True), )
获取所需数据
定义你的callback函数,以本人项目提取数据为例。
def parse_detail(self, response):