Scrapy爬虫自学笔记(一)

工作之余,多学习,补充技术不足。


基础

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来获取数据。
shell

注意:必须使用双引号

css

css

添加:: text , 是为了获取到<title>中的文本内容,extract() 用户提取数据

提取第一个结果或者结果

方式一

response.css('title::text').extract_first()

方式二

response.css('title::text')[0].extract()
注意:使用 **.extract_first()**  可以避免没有值的时候返回 **IndexError** 错误,同时返回 **None** 

方式三

采用正则化提取,re()
正则化

xpath

使用xpath提取数据
xpath

完整的代码

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

数据存储

以存为json为例
存数据

获取下一页

<ul class="pager">
    <li class="next">
        <a href="/page/2/">Next <span aria-hidden="true">&rarr;</span></a>
    </li>
</ul>

下一页

方式一:绝对链接

response.urljoin是将两个拼接起来,构成完整的链接
绝对路径

方式二:相对链接

response.follow 支持相对链接方式
相对路径

猜你喜欢

转载自blog.csdn.net/xxzhangx/article/details/80521155