题目描述
事情是这样的我在用 scrapy 根据关键词爬取新浪主页网站前 30 页内容,只能模拟浏览器点击下一页爬取,根据官方文档把 selenium 相关操作写进了 middlewares.py 中,现在的问题是 middleware 获取到 response 传给spider 解析,但是spider 只能解析 第一页,其后的页面 无法传个 spider 解析
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
文档把 selenium 相关操作写进了 middlewares.py 中,现在的问题是 middleware 获取到 response 传给
spider 解析。 现在的问题是,spider 只能解析 第一页,其后的页面 无法传个 spider 解析,点击下一页 url 不会变动,我现在需要获取每条内容所在的页码,但是每次只能解析第一页就终止代码如下:
middleware.py
class SeleniumMiddleware(object):
def process_request(self,request,spider):
if spider_name == 'sina':
driver = webdriver.Chrome()
driver.get(request.url)
next_page = driver.find_element_by_xpath('//a[contains(text(),'下一页’)]")
next_page.click()
return HtmlResponse(request.url, body=driver.page_source,request=requst)
esle:
return
Spier.py
class Sina(scrapy.Spider):
def start_request(self):
keyword_list = ['a','b','c']
max_page = 30
for k in keyword_list:
for p in range(1,max_page+1):
url = base_url.format(k)
yield scrapy.Request(url=url, callback=self.parse)
解决了吗现在