当前位置:   article > 正文

使用Scrapy爬虫框架爬取books.toscrape.com上书籍的相关信息并存储为csv文件

books.toscrape

此处准备使用Scrapy爬虫框架对 http://books.toscrape.com/(一个专门用来被爬取的网站)上书籍的相关信息进行爬取。

相关信息包括:书名、价格、评价等级、库存量、产品编码、评价数量。


首先进行页面分析:

这里补充一下,通常现在的浏览器都会对html文本进行一定的规范化, 所以在使用Chrome等浏览器自带的XPath路径的时候, 有可能会导致读取失败。
虽然很多时候用view命令加载出的页面和浏览器打开的是一样的,但是前者是Scrapy爬虫下载的页面,后者是由浏览器下载的页面,有时它们是不同的。

在进行页面分析时,使用view命令更加可靠:

在命令提示符窗口输入
scrapy shell url
view(response)
然后就打开了Scrapy爬虫下载的页面,此时在F12开发者工具中看的路径就是原始路径。
  • 1
  • 2
  • 3
  • 4

这里我们以第一本书为例进行分析:

首先输入scrapy shell http://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html
在这里插入图片描述

运行这条命令后,scrapy shell会使用url参数构造一个Request对象,并提交给Scrapy引擎,页面下载完成后,程序进入Scrapy终端,在此环境中已经创建好了一些变量(对象和函数),我们可以在这里调试爬取代码。

状态码为200,表示请求成功:

然后输入view(response)

然后就自动打开页面了:
在这里插入图片描述

接下来使用 XPath Helper 和 F12 分析一下页面:

(XPath Helper 的安装教程在我的文章中有,辅助工具专栏)

首先是书名:
在这里插入图片描述

在Scrapy终端里测试一下:
在这里插入图片描述

extract()与extract_first()区别:
extract()返回的所有数据,存在一个list里。
extract_first()返回的是一个string,是extract()结果中第一个值。


接下来是价格:
在这里插入图片描述


然后是评价等级:
在这里插入图片描述
我们用正则表达式去除字符串中的star-rating
在这里插入图片描述


接下来是库存量:
在这里插入图片描述
我们依然使用正则表达式对库存量进行提取:
在这里插入图片描述
这里我们会发现,按照我们直接分析的XPath是提取不到内容的,我们得删去tbody标签,为什么呢?

因为浏览器本身自动为table新增了tbody标签内容,但是在xpath中是不需要的(试试看把tbody标签去掉,依然表示对应的信息),需要在进行xpath查询之时移除掉。


然后是产品编码:
在这里插入图片描述
同理,我们可以这样提取:
在这里插入图片描述


最后是评价数量:
在这里插入图片描述
同理,我们可以这样提取:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/825023
推荐阅读
相关标签
  

闽ICP备14008679号