使用scrapy访问网页

使用scrapy访问网页

在正式写爬虫代码之前,先用scrapy访问网页玩一玩,形成初步概念(安装参考scrapy安装)。


启动scrapy

打开终端输入scrapy shell "https://quotes.toscrape.com/"(注意:不用启动python,直接在命令行里输入并回车执行)。scrapy开始运行,界面最下方光标处为>>>,是scrapy自行启动了python交互界面并且完成了对网页的爬取。爬取结果储存在response对象里。

试试看在交互界面里输入response.css('title').getall()并回车。如下图所示,返回了一个列表,列表中的元素为'<title>Quotes to Scrape</title>',就是爬取到的网页的标题了。

在这里插入图片描述


查看页面

接下来在交互界面里输入view(response),程序会唤起浏览器打开爬取到的网页内容,这个网站摆了每页十句引述供爬取。我们试试看用scrapy爬取第一句引述。随便选中引述的一部分,在右键菜单中选择“查看元素“。

在这里插入图片描述

点击“查看元素”后会打开如下图界面,点击蓝色高亮行的三角形图标,展开该代码块,就可以看到整句引述的内容:“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.”(如果这句引述比较短的话不会折叠,直接跟span显示在同一行。)

在这里插入图片描述


爬取引述

在代码块中选中这句引述(不一定是同一句话,网页会更新),右键并在菜单栏中选择“复制->XPath”。粘贴到别处看看,可以看到剪贴板的内容是/html/body/div/div[2]/div[1]/div[1]/span[1]/text()。如果你选到的引述跟span在同一行,那么复制过来的内容可能末尾是/span[1],要自己在下一步手动补上/text()

在这里插入图片描述

现在可以回到终端了,把剪贴板的内容粘贴到response.xpath('').get()两个单引号之间,并输入到交互界面。执行结果如下图所示,我们通过xpath获取了response对象中的这句引述文本。返回值中有两层引号,内层是网页原文中的引述包含的双引号,外层是用来标识python中字符串的引号。

在这里插入图片描述


批量爬取引述

查看两句引述的xpath,就可以发现想要查询不同位置的引述,只需要在xpath中修改最后一个div的索引。可以用循环遍历1到10的的xpath来获取所有引述。

另一种方法是使用has-class。执行response.xpath('//span[has-class("text")]/text()').getall()指令,就可以得到包含十句引述的列表。

指令中的关键是span[has-class("text")],起到了选出response对象中所有含有text类的span。可以在“检查元素”唤出的检查器里使用查找功能,查找有多少个span下的text。点击问号进入搜索栏,输入span.text来查找,可以看到搜索到了10个<span class="text" ...>。这里查找到的元素就是span[has-class("text")]会索引到的所有元素。

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值