请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

把selenium集成到scrapy中间件(已在setting文件设置启动中间件),运行时却无法启动中间件

具体代码如下

#中间件
from selenium import webdriver
from scrapy.http import HtmlResponse
import time
class ChromeMiddlewares(object):
    def process_request(cls,request,spider):
        if request.meta.has_key('Chrome'):
            driver=webdriver.Chrome()
            driver.get(request.url)
            driver.find_element_by_name('account').send_keys('13808847170')
            driver.find_element_by_name('password').send_keys('aa886688')
            time.sleep(7)
            driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[2]/form/div[2]/button").click()
            time.sleep(7)
            for i in range(3):
                driver.execute_script('window.scrollBy(0,3000)')
                time.sleep(5)
            content=driver.page_source
            driver.quit()
            filename='zhihu.html'
            with open(filename,'wb')as fp:
                fp.write(content.encode('utf-8'))
            return HtmlResponse(request.url,body=content,encoding='utf-8',request=request)
            
            
            
#spider文件
# -*- coding: utf-8 -*-
import scrapy
class TestmoniSpider(scrapy.Spider):
    name = "testmoni"
    allowed_domains = ["https://www.zhihu.com/"]
    start_urls = []

def start_requests(self):
    urls='https://www.zhihu.com/#signin'
    rq=scrapy.Request(url=urls,callback=self.parse)
    rq.meta['Chrome']=True
    yield rq

    def parse(self, response):#这个函数主要写解析
        print response.text
        
        
setting文件
DOWNLOADER_MIDDLEWARES={'testselenium.middlewares.ChromeMiddlewares':1,}


正在回答 回答被采纳积分+3

1回答

bobby 2017-05-29 15:51:45

无法启动是什么问题, 是无法启动chrome还是无法进入process_request函数, 你有没有debug过

1 回复 有任何疑惑可以回复我~
  • 提问者 慕先生0421411 #1
    我debug过,是无法启动中间件,为了验证是不是无法启动chrome,又单独写了一个测试chrome的py,结果是chrome能正常启动运行的
    回复 有任何疑惑可以回复我~ 2017-05-29 17:46:01
  • bobby 回复 提问者 慕先生0421411 #2
    你的意思是无法进入到process_request 函数? 你试试将process_request函数改为def process_request(self, request, spider):
    回复 有任何疑惑可以回复我~ 2017-06-01 09:45:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信