Scrapy从css路径不返回任何数据

我正在尝试抓取此website第一页上的列表的链接(或列表ID)。 我认为正确的CSS选择器必须是

String jsonString1

至少当我在Element Inspector中搜索此选择器(没有div.property-content-list > div.property-text > h3 > a::attr(href) )时,似乎应该返回正确的数据。但是,当运行蜘蛛时,我得到一个空的输出。

我对scrapy和CSS选择器是陌生的,但对于大多数其他网站却很了解。我的错在哪里?

作为参考,这是我的Spider的parse方法。

::attr(href)

谢谢

loyal_886 回答:Scrapy从css路径不返回任何数据

在您的网站上,所有列表页面均遵循相同的命名模式mietangebot_ID.html。您真的不需要使用CSS选择器来获取ID。

您可以通过运行以下Bash命令自行检查它:

curl -s "https://www.studenten-wg.de/angebote_lesen.html?detailsuche=aus&stadt=D%FCsseldorf&fuer=Wohnungen" | grep -Eo "mietangebot_[0-9]+\.html"

它打印以下内容:

mietangebot_1892908.html
mietangebot_1892908.html
mietangebot_1892908.html
mietangebot_1866908.html
[...]

在刮板中,您可以简单地将re.findall()与命名模式一起使用并将ID捕获为一个组:

import re

listings_ids = re.findall(r"mietangebot_([0-9]+)\.html",response.text)
print(listings_ids)

哪个会打印您的列表:

['1891640','1860266',etc...]
本文链接:https://www.f2er.com/3114123.html

大家都在问