在爬虫中
#造一个假的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)