scrapy request()无法与response.url一起使用

xqnpmsa8  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(129)

我正在建立一个蜘蛛爬行不同的标签页。
在某些情况下,我需要提取一个URL以转到下一页:

url = i.css('a').attrib['href'] 
yield response.follow(url=url, callback=self.parse_menu)

在某些情况下,我不需要转到不同的页面,但仍希望转到管道中的下一步(parse_menu),因此我执行以下操作:

yield response.follow(url=response.url,callback=self.parse_menu)

第一个场景运行良好,但在第二个场景中,parse_menu永远不会被调用。
我想我在请求和回调的工作方式上可能遗漏了一些东西。
提前感谢!

bmp9r5qi

bmp9r5qi1#

我不确定我是否很好地理解了您的意思,但我认为您发送了两次相同的请求,因此需要将dont_filter设置为True。

yield response.follow(url=response.url,callback=self.parse_menu,dont_filter=True)
nzk0hqpo

nzk0hqpo2#

请尝试:

url = i.css('a::attr(href)').get()

相关问题