【selenium 作为scrapy的下载中间件】

第一步:

第二步:

编写middleware.py

# -*- coding: utf-8 -*-
from selenium import webdriver
from scrapy.http import HtmlResponse

class SeleniumMiddleware(object):
    def process_request(self, request, spider):

        if spider.name =="manhua":#判断当前爬虫名是不是manhua,是就进行selenium处理
            print"PhantomJS is starting..."
            driver = webdriver.PhantomJS() #指定使用的浏览器
            driver.get(request.url)

            # js = "var q=document.documentElement.scrollTop=10000"
            # driver.execute_script(js) #可执行js,模仿用户操作。此处为将页面拉至最底端。
            body = driver.page_source
            print("访问"+request.url)
            driver.close()
            return HtmlResponse(request.url, body=body, encoding='utf-8', request=request, )
        else:
            return

第三步:

在settings.py启用自己的中间件和静止内置的中间件

DOWNLOADER_MIDDLEWARES = {
#    'mhtai.middlewares.MyCustomDownloaderMiddleware': 543,
'mhtai.middlewares.middleware.SeleniumMiddleware':543,#键为中间件类的路径,值为中间件的顺序
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None#禁止内置的中间件
}

 

posted @ 2018-01-29 16:08  丰study  阅读(163)  评论(0)    收藏  举报