Scrapy Shell调试代码

Scrapy Shell是一个交互式终端,用于在不启动spider的情况下调试代码和测试XPath或CSS选择器。通过它,我们可以检查HTTP状态码,识别网站的反爬机制,并在确认无误后将提取数据的代码应用于实际爬虫项目。
摘要由CSDN通过智能技术生成

Scrapy Shell

Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据。

启动Scrapy Shell

进入cmd输入命令行:

scrapy shell "http://quotes.toscrape.com/"

状态码200,表示请求成功。

在爬取一个网站的时候,最好是使用shell来查看下是否有反爬机制,如果返回的状态码不是200,多半是有反爬机制。如果在不知道的前提下强行爬取可能会导致爬虫中断需要登录后才可访问网站,严重的甚至是ip被封。

测试XPath

>>> response.xpath('//div[@class="quote"]//small/text()')
[<Selector xpath='//div[@class="quote"]//small/text()' data='Albert Einstein'>, <Selector xpath='//div[@class="quote"]//small/text()' data='J.K. Rowling'>, <Selector xpath='//div[@class="quote"]//small/text()' data='Albert Einstein'>, <Selector xpath='//div[@class="quote"]//small/text()' data='Jane Austen'>, <Selector xpath='//div[@class="quote"]//small/text()' data='Marilyn Monroe'>, <Selector xpath='//div[@class="quote"]//small/text()' data='Albert Einstein'>, <Selector xpath='//div[@class="quote"]//small/text()' data='André Gide'>, <Selector xpath='//div[@class="quote"]//small/text()' data='Thomas A. Edison'>, <Selector xpath='//div[@class="quote"]//small/text()' data='Eleanor Roosevelt'>, <Selector xpath='//div[@class="quote"]//small/text()' data='Steve Martin'>]
>>> response.xpath('//div[@class="quote"]//small/text()').extract()
['Albert Einstein', 'J.K. Rowling', 'Albert Einstein', 'Jane Austen', 'Marilyn Monroe', 'Albert Einstein', 'André Gide', 'Thomas A. Edison', 'Eleanor Roosevelt', 'Steve Martin']
>>> response.xpath('//div[@class="quote"][1]//small/text()').extract()
['Albert Einstein']
>>> response.xpath('//div[@class="quote"][1]//small/text()').extract()[0]
'Albert Einstein'

以后做数据提取的时候,可以把现在Scrapy Shell中测试,测试通过后再应用到代码中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值