事情是这样的我在用 scrapy 根据关键词爬取新浪主页网站前 30 页内容,只能模拟浏览器点击下一页爬取,根据官方
文档把 selenium 相关操作写进了 middlewares.py 中,现在的问题是 middleware 获取到 response 传给
spider 解析。 现在的问题是,spider 只能解析 第一页,其后的页面 无法传个 spider 解析,代码如下:
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
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)
点击下一页 url 不会变动,我现在需要获取每条内容所在的页码,但是每次只能解析第一页就终止,希望大家指点一下
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.