美文网首页
python爬虫2--scrapy shell测试

python爬虫2--scrapy shell测试

作者: 牛小方 | 来源:发表于2020-01-19 16:29 被阅读0次

一、前言

scrapy shell也称"scrapy终端",是一个交互终端,用于未启动spider爬虫的情况下调试代码,方便对目标网页进行分析以及测试是否可以提取到页面数据

讲到提取数据就要先讲一讲scrapy内置的selector选择器了,selector选择器有如下几种常用用法:

1、xpath()或者css()

通过xpath表达式或者CSS表达式,返回该表达式所对应的所有节点的selector list列表

2、extract()或者extract_first()

extract()序列化该节点为Unicode字符串并返回list列表,而extract_first()只返回列表的第一项

3、re()

通过正则表达式对数据进行提取,返回Unicode字符串list列表

这里要特别强调一下selector选择器返回的都是列表


二、实际操作

1、启动终端

scrapy shell <url>

例如:scrapy shell https://cd.5i5j.com/zufang/

查看返回的response的响应状态,如果是200说明响应成功

有时由于网站有一些反爬的保护,导致响应状态不是200,可以通过增加user-agent参数来伪装浏览器

例如:scrapy shell -s USER_AGENT="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" https://cd.5i5j.com/zufang/

2、查看response信息

输入:response.headers可以看到response的包头

输入:response.headers['Set-Cookie']可以看到response某一个属性的值

输入:response.body可以看到response的包体

3、执行多行输入

当使用简单的多行输入命令后,单独Enter 键无法执行代码,需要使用shift+Enter键执行,如:

for i in response.headers:

print(i)

网上我也看到有的说用Ctrl + Enter 键执行,我不确定组合键是否和系统环境还有设置有关,可以这两个都试一下看自己是哪一个

4、response.xpath 实例

如要获取页面上房源的小区名,先利用F12自带的元素定位器,找到该元素的位置,再通过xpath表达式定位该元素

输入:response.selector.xpath('//div[@class="listX"]/p/a/text()')或者用快捷方式:response.xpath('//div[@class="listX"]/p/a/text()')获取该节点的selector list列表

目标元素为列表的第4项,可通过下标的方式获取,输入:response.xpath('//div[@class="listX"]/p/a/text()')[3]

上面获取的都是selector list列表,如果只想要得到data内容,输入:response.xpath('//div[@class="listX"]/p/a/text()').extract()

同样的,想要得到目标元素也可以通过下标的方式输入:response.xpath('//div[@class="listX"]/p/a/text()').extract()[3]

前面提到的extract_first()直接获取列表第一项,输入:response.xpath('//div[@class="listX"]/p/a/text()').extract_first()

5、退出终端模式

输入exit() 即可退出scrapy shell 终端模式

相关文章

  • python爬虫2--scrapy shell测试

    一、前言 scrapy shell也称"scrapy终端",是一个交互终端,用于未启动spider爬虫的情况下调试...

  • Mac 安装 Graphviz python 3

    在系统中安装graphviz 在shell中测试一下 在python中安装(切换python3的环境) 测试imp...

  • 产品经理

    大三暑假,作为一名追求高薪,手握python,selenium自动化测试,爬虫,性能测试,接口测试,Appium移...

  • Python-定向爬虫的简单使用

    前言 初次接触Python,是以为测试同事用来做自动化测试,这两天有空“研究”了一下Python网络爬虫,所谓“研...

  • 爬虫-python-scrapy框架基本命令

    爬虫-python-scrapy框架基本命令 创建一个项目 抓取页面 网页抓取shell XPath(选择器节点)...

  • django测试Api

    使用命令python manage.py shell进入shell,用命令行交互的方式测试Api。进入命令行后,首...

  • 3分钟带你了解世界第一语言Python 入门上手也这么简单!

    一、Python入门 1. Python爬虫入门一之综述 Python爬虫入门二之爬虫基础了解 Python爬虫入...

  • python--初识

    python处理得事情: 爬虫,测试,大数据,web,AI 脚本处理 python缺点:相对于c,c++,java...

  • 初识python

    python作用 自动化运维、自动化测试、大数据分析、爬虫、Web... Python的种类 CpythonPyt...

  • Scrapy笔记-常用指令

    常用指令 创建项目 设置一个新的Scrapy项目。 运行爬虫 数据提取测试 css选择器 使用 shell,您可以...

网友评论

      本文标题:python爬虫2--scrapy shell测试

      本文链接:https://www.haomeiwen.com/subject/seyrzctx.html