python爬虫scrapy入门教程
背景:python实现网页爬虫,可以使用scrapy,首先,需要安装python的运行环境,我们这里使用anaconda集成环境。
安装好以后,打开Anaconda Navigator,打开CMD.exe Prompt,在命令行窗口运行:pip install scrapy,运行完,没有报错,意味着scrapy就安装好了,然后,在当前文件夹下新建一个文件,名为:myspider.py,代码如下:
import scrapy class BlogSpider(scrapy.Spider): name = 'blogspider' start_urls = ['https://www.zyte.com/blog/'] def parse(self, response): for title in response.css('.oxy-post-title'): yield {'title': title.css('::text').get()} for next_page in response.css('a.next'): yield response.follow(next_page, self.parse)
在命令行窗口下,运行:scrapy runspider myspider.py
这个例子是scrapy官网提供的,安装好python环境,按照教程操作就可以看到抓取到的博客内容,这个例子看似简单,其实,有些细节有必要特别关注,这也是写这篇文章的主要目的。
scrapy官网提供的样例代码,第一个for是抓取https://www.zyte.com/blog/的当前页面上class为oxy-post-title的所有标签的内容,第二个for是用来抓取分页以后的标签内容的。
我们首先打开https://www.zyte.com/blog/,通过开发者工具的审查功能,找到class名为oxy-post-title的元素,可以看到这是title的容器,就是说:当我们抓取网页内容时,首先要做的是:定位到该元素最直接的容器,同样的,想要获取分页的内容,也要先定位到分页标签对应的最直接的容器。
明白了这一点,使用scrapy抓取其他网页的内容时,才更顺手!
参考资料:
https://scrapy.org/