我正在尝试废弃此网站:
https://www.coolblue.nl/en/our-assortment
我正在收集产品类别的所有URL列表。我几乎可以得到所有的。出于某种原因,那些“更多…”标签真的很难得到。你知道吗
我相信这和我的选择者有关。此时,我正在尝试在shell中获取那些特定的“More..”url,只是想弄清楚如何正确地选择它们。例如,在“笔记本电脑、台式机和监视器”部分中,“更多..”类别具有href=“/en/Laptops desktops monitors”。它位于“Monitors”类别之后,带有href=“/en/Monitors”。你知道吗
这就是我想做的。你知道吗
我打开一个粘糊糊的贝壳:
scrapy shell https://www.coolblue.nl/en/our-assortment
然后我试着按索引选择我想要的。我以不同的方式尝试了Xpath和CSS:
>>> response.xpath("//a[@class='category-navigation--link']/@href")[3].getall()
['/en/monitors']
>>> response.xpath("//a[@class='category-navigation--link']/@href")[4].getall()
['/en/keyboards']
>>> response.xpath("//a[contains(@class, 'category-navigation--link')]/@href")[3].getall()
['/en/monitors']
>>> response.xpath("//a[contains(@class, 'category-navigation--link')]/@href")[4].getall()
['/en/keyboards']
>>> response.css("a.category-navigation--link::attr('href')")[3].getall()
['/en/monitors']
>>> response.css("a.category-navigation--link::attr('href')")[4].getall()
['/en/keyboards']
如你所见,它从“显示器”类别跃升到“键盘”类别,我不知道为什么。第四个索引应该有一个值'/en/laptops desktops monitors',它不在该列表的任何其他位置,因为我已经搜索过了。你知道吗
它应该显示在第四个索引中,但它不。。。你知道怎么回事吗?你知道吗
由于某些原因,这些“更多”链接并不总是显示在页面中:
我也明白了:
注意,在一个版本中它有“更多”链接,在另一个版本中标题是链接。每当我清除缓存时,就会得到第二个版本。Scrapy似乎也得到了没有“更多”链接的版本。你知道吗
相反,我建议您从菜单中获取链接(即使它们对您来说是隐藏的)。你知道吗
以下是如何在“计算机和平板电脑”菜单中获得(蓝色)标题链接:
以下是如何获得每个标题下的链接:
无法获取
Laptops, desktops & monitors
的原因是该链接没有类category-navigation link
。使用下面的xpath来检索类别标题和导航链接。你知道吗相关问题 更多 >
编程相关推荐