如何在scrapy中进行翻页,构造一个伪地址请求,在下载中间件中触发翻页效果

在爬虫中
#造一个假的url,判断url能不能传过去
yield Request(url=“pseudo://next”,callback=self.parse,dont_filter=True)
#在middlewares.py中
def init(self):
self.browser = webdriver.Chrome(executable_path="/cdrom/chromedriver")

def process_request(self,request,spider):
    #判断一下是否能打印出来url,这个就是判断这个url怎么传过来的,打印出来的应该是starts_url
    # print('下载url是',request.url)
    if request.url.endswith("next"):
        # 先滚动到最后然后再抓取
        self.browser.execute_script("window.scrollTo(0,document.body.scrollHeight - 100)")
        next_elements = self.browser.find_elements_by_css_selector("div.soupager > button.soupager__btn")
        next_elements[1].click()
        time.sleep(2)
    else:
        self.browser.get(request.url)
        time.sleep(10)

    #这个是把ajax当中的page_source用模拟浏览器爬取出来,传到前面的response.text
    return HtmlResponse(url=self.browser.current_url,body=self.browser.page_source,encoding='utf-8',request=request)

猜你喜欢

转载自blog.csdn.net/weixin_44274975/article/details/88389570