工作之余,多学习,补充技术不足。
基础
1、新建scarpy项目
打开cmd,切换到工作目录中

新建项目,命名为tutorial
scrapy startproject tutorial

2、创建新的爬虫任务
scrapy genspider example example.com
这里指的是爬取网站example.com,并将项目命名为example

3、写取数逻辑
以爬取quotes.toscrape.com为例,新建任务脚本quotes_spider.py, 逻辑写在quotes_spider.py 中。如提取网页内容:

4、运行
打开cmd,切换到该项目下,运行:
scrapy crawl quotes_spider

5、shell 提取数据
使用shell是为了帮助我们更好的利用xpath和css来获取数据。

注意:必须使用双引号
css

添加:: text , 是为了获取到<title>中的文本内容,extract() 用户提取数据
提取第一个结果或者结果
方式一
response.css('title::text').extract_first()
方式二
response.css('title::text')[0].extract()
注意:使用 **.extract_first()** 可以避免没有值的时候返回 **IndexError** 错误,同时返回 **None**
方式三
采用正则化提取,re()

xpath
使用xpath提取数据

完整的代码
将上面使用css或xpath处理的逻辑写入脚本,代码如下:

数据存储
以存为json为例

获取下一页
<ul class="pager">
<li class="next">
<a href="/page/2/">Next <span aria-hidden="true">→</span></a>
</li>
</ul>

方式一:绝对链接
response.urljoin是将两个拼接起来,构成完整的链接

方式二:相对链接
response.follow 支持相对链接方式

本文详细介绍Scrapy爬虫的搭建流程,包括项目的创建、爬虫任务定义、数据抓取及解析技巧,如使用XPath与CSS选择器。此外,还介绍了如何通过不同方式实现翻页抓取,并提供了数据存储的具体实现。
564

被折叠的 条评论
为什么被折叠?



