我试图选择一个“下一个”的导航链接,似乎无法找到正确的组合选择器在刮。你知道吗
这是网址: search page on boat listing site
我尝试选择的链接是以下标记:
<a rel="nofollow" class="icon-chevron-right " href="/boats-for-sale/condition-used/type-power/class-power-sport-fishing/?year=2006-2014&length=40-65&page=2"><span class="aria-fixes">2</span></a>
我试过很多种响应.xpath以及响应.css但似乎找不到正确的组合。你知道吗
使用google chrome inspector,我得到以下xpath: //*[@id=“root”]/div[2]/div[2]/div[2]/div/div[3]/a[9]
最后,我尝试获取标签的href属性,该属性包含我想要关注的URL。你知道吗
我是不是遇到了rel='nofollow'属性和scrapy设置的问题?你知道吗
编辑-此代码以前可以工作,但现在在css选择器上出现错误:
def parse(self, response):
listing_objs = response.xpath("//div[@class = 'listings-container']/a")
for listing in listing_objs:
yield response.follow(listing.attrib['href'], callback= self.parse_detail)
next_page = response.css("a.icon-chevron-right").attrib['href']
if next_page is not None:
yield response.follow(next_page, callback = self.parse)
在这种情况下,您可以通过在URL末尾添加
&page=#
来访问网站的任何页面,这种方法将满足在当前页面被爬网后访问下一页内容的要求。例如,你可以这样做:
@Piron上面的答案可能是对页面进行迭代的最简单方法,但您是否仍希望使用Xpath路径:
其中,search page nav是其他页面链接的父div类,icon chevron right是您要查找的标记的特定类,@href选择该标记的链接,text()将属性转换为文本。你知道吗
相关问题 更多 >
编程相关推荐