python - SCAPY 不打印终端中的所有项目
问题描述
我在终端中使用 SCAPY Shell 使用此命令,但它没有打印所有项目。
scrapy shell https://access.redhat.com/errata/RHSA-2017:0621
response.xpath('normalize-space((//div[contains(@class, "tab-pane")]/ul)[2]/li/text())').getall()
它只打印第一项。
解决方案
normalize-space()
仅适用于单个节点。如果你给它一个节点集,它将返回从第一个节点产生的值。
如果你想将它应用到多个节点,你可以这样做(pp
只是一个漂亮的打印功能):
>>> products = response.xpath('(//div[contains(@class, "tab-pane")]/ul)[2]/li').xpath('normalize-space()').getall()
>>> pp(products)
[
'Red Hat Enterprise Linux Server 6 x86_64',
'Red Hat Enterprise Linux Server 6 i386',
'Red Hat Enterprise Linux Workstation 6 x86_64',
'Red Hat Enterprise Linux Workstation 6 i386',
'Red Hat Enterprise Linux Desktop 6 x86_64',
'Red Hat Enterprise Linux Desktop 6 i386',
'Red Hat Enterprise Linux for Power, big endian 6 ppc64',
'Red Hat Enterprise Linux for Scientific Computing 6 x86_64'
]
推荐阅读
- java - 无法在控制器中获取表单输入的值而不是获取异常
- python - 在 Go 中生成字节数组
- html - Safari 上的 HTML 颜色输入更改事件经常触发
- php - 在关联数组中搜索一个值并返回键
- r - 软件包“AppData/Local/Temp/RtmpMZbKaw/file6f24687928c7/pkgbuild_1.0.8.tar.gz”的安装具有非零退出状态
- python - 无法使用 python selenium 从表中提取值
- xamarin.forms - 应用重启后 Xamarin BLE 插件连接到设备
- sql - 使用内部连接从其他两个视图创建新视图,我只看其他相同的问题,但我无法解决我的问题
- node.js - vue中如何用axios上传图片
- laravel - Laravel 请求验证项目数组