python - 爬行后刮掉奇怪的输出
问题描述
我正在做一个新项目,我尝试抓取链接
我做了什么
首先,我试图在我的 shell 中获取一些信息,以便正确解决问题。我在 shell 中编写的代码:response.xpath(//div[@class="product-wrapper col-xs-6 col-md-4"]/text()').get()
使用此代码,我只想打印出产品的标题,但我得到了一些非常奇怪的输出:
我的第一个问题是 robots.txt 的问题,所以我更改了 settings.py 用户代理,现在它可以工作了,我想我们可以确定错误来自该更改,对吧?如我错了请纠正我。
经过一番研究,我发现这来自错误的格式,你可以用类似的东西来确定这个错误:
response.xpath('normalize-space(//div[@class="product-wrapper col-xs-6 col-md-4"]/text())')
但这根本没有帮助我。
我现在能做什么?
解决方案
您可能需要仔细检查您的XPath
. 这是我的看法:
import requests
from lxml import html
html.fromstring(requests.get("https://www.karton.eu/einwellig-ab-100-mm").content).xpath("//*[@class='title']/a/text()")
代码所做的是获取html
请求页面的内容,将其解析为字符串并应用XPath
选择器,该选择器搜索 class 的所有项目title
,走到锚标记a
并提取文本值。
上面的代码输出:
['113x113x100 mm einwellige Kartons', '140x140x100 mm einwellige Kartons', '150x100x80 mm einwellige Kartons', '150x150x150 mm einwellige Kartons', '170x150x100 mm einwellige Kartons', '190x180x100 mm einwellige Kartons']
推荐阅读
- laravel - 多个表之间的一对多关系
- angularjs - 如何构建每个客户有多个版本的应用程序?
- flutter - Flutter 中的 AnimatedWidget 和 AnimatedBuilder
- jdbc - 在 Kafka 连接器插入模式下避免致命的重复密钥错误
- javascript - 查询 slotElement.assignedNodes() 结果
- swift - 如何计算链接为 .curveEaseIn 和 .constant 的两个动画持续时间,这样我们就不会注意到任何故障?
- docker - 无法缩减 Kubernetes 部署(过度扩展)
- python - win32gui MoveWindow() 未与屏幕左边缘对齐
- c++ - 使用 std::iterator_traits<> 时出现不清楚的编译时错误
- javascript - 使用谷歌地图,如何用某种颜色填充所有国家区域?