Python scrapy基础教程(二)

来源:互联网 发布:波士顿矩阵分析案例ppt 编辑:程序博客网 时间:2024/06/05 07:00

爬取一般网站常用的spider。其定义了一些规则(rule)来提供跟进link的方便的机制。 也许该spider并不是完全适合您的特定网站或项目。因此您可以以其为起点,根据需求修改部分方法。当然您也可以实现自己的spider。
也就是说spider是根据spider里面的start_urls的url进行爬虫的。但有时候我们爬取的url是带有参数,或者需要登录了网站才能爬取数据的时候,这时候spider虽然能做到,但显得有点乏力。
spider做法:直接看官方文档
这里写图片描述

for url in response.xpath('//a/@href').extract():    yield scrapy.Request(url, callback=self.parse)

实现方法就是通过start_urls获取全部链接,然后用循环实现,但是遇到不同的链接,网页内容肯定不一样的,这时候就要做很多的判断。这样代码显得臃肿。


CrawlSpider可以根据个人要求做到这个需求,说的白点就是,CrawlSpider就是灵活性高,可以任性一点。但CrawlSpider不会爬取start_urls这个链接的内容,只会根据rules筛选start_urls里面的url,然后爬取这些url的内容

用法:根据上一教程,这里只需修改spiders文件夹下的py文件,这里我新增一个py文件,用于区别上一教程的
这里写图片描述

其他文件无需修改。
代码
这里写图片描述
A:导入包
B:设置rules内容,allow是设置start_urls这个网页里面符合条件的链接,deny是排除start_urls这个网页含有条件的链接
C:callback就是指定的方法。
这段代码就是查找start_urls这个网页带有shop而且不含有fr这个链接。

运行结果:
这里写图片描述

代码下载
扩展:Scrapy模拟登录


欢迎加入学习交流QQ群:657341423

0 0