查看目标网页
http://quotes.toscrape.com 中的每个名言都由 HTML 元素表示,如下所示:
确定采集实体:
从上图可以看出,我们需要采集的实体有三个,分别是:标签(tags)、名人名言(text)和作者(author)
建立新项目:quotes
scrapy startproject quotes enter
查看一下创建的项目
在items.py中定义自己要抓取的数据
检查我们的页面,我们可以看到链接到下一个页面的URL在下面的元素中:
在shell中我们可以把它提取出来
编写myspider.py文件
现在,在提取数据之后,parse() 方法查找到下一页的链接,使用 urljoin() 方法构建一个完整的绝对 URL(因为链接可以是相对的),并生成(yield)一个到下一页的新的请求, 其中包括回调方法(parse)。
使用它,可以根据我们定义的规则构建复杂的跟踪链接机制,并根据访问页面提取不同类型的数据。
在上面的图片中,它创建一个循环,跟踪所有到下一页的链接,直到它找不到要抓取的站点分页。
运行命令 scrapy crawl quotes -o quotes.json
得到的部分数据如下
如何检查xpath/css定位是否正确
用scrapy shell进行调试
参考教程:http://scrapy-chs.readthedocs.io/zh_CN/1.0/topics/shell.html
总结和感悟
在进行数据的采集任务中,采集的规则和方法是数据采集的核心。要对整个网站仔细地观察和研究,要非常细心并且有耐心。同时仍然需要对python进行更多和更深刻的练习,就比如在这次的学习中发现使用xpath可能比css更加快速准确。还要继续努力才能学好python。