爬虫问题,scrapy + selenium 翻页问题

新手上路,请多包涵

题目描述

事情是这样的我在用 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)
        
        

        


阅读 6.7k
1 个回答

解决了吗现在

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题