【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#禁止内置的中间件 }

浙公网安备 33010602011771号