首页 > 解决方案 > 爬行后刮掉奇怪的输出

问题描述

我正在做一个新项目,我尝试抓取链接

我做了什么

首先,我试图在我的 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())')但这根本没有帮助我。

我现在能做什么?

标签: pythonpython-3.xweb-scrapingscrapy

解决方案


您可能需要仔细检查您的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']


推荐阅读