打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【视频讲解】在scrapy框架中如何使用selenium?

如何在scrapy中使用selenium

上一个文章已经分享了scrapy的settings.py、spider爬虫(spider文件夹中的爬虫)、items.py、pipelines.py,但没有讲解middleware.py。

middleware,翻译过来叫做中间件,有中间这个词语,可以认为是在两个功能之间的的意思。我对中间件的理解也不是特别深,就拿研究了两天的成果,作为本期的内容。

我想使用selenium的phantomjs来爬目标网站的数据,那么scrapy如何与phantomjs来结合起来使用呢?

这里就用到了中间件。其中spider部分基本不怎么改动,只有很小的改动。只有middleware.py和settings.py有改动。

我觉得scrapy这种框架性的东西,想用文字加图片很难生动的将功能展示出来,今天还是录制一个视频,简单的将使用方法和代码功效展示出来。


settings

取消DOWNLOADER_MIDDLEWARES的注释,让自定义的下载中间件正常使用。

DOWNLOADER_MIDDLEWARES = {    'baidu.middlewares.MyCustomDownloaderMiddleware': 543,}

spider部分(本例中是bd.py)

主要是在请求时,在请求中加入暗号,中间件那里接到指定的暗号就执行。比如我在请求中加入参数是“TellMeWhoYouAre”,参数值为"DaDeng",如果中间件收到的这个暗号值是“DaDeng”,那么执行中间件。

本文是讲的scrapy中如何使用selenium,那么中间件部分就是selenium的执行。

from scrapy import Spider,Request

class BdSpider(Spider):    name = 'bd'    allowed_domains = ['baidu.com']    start_urls = ['http://baidu.com/']        def start_requests(self):        url = 'https://www.baidu.com/s?ie=UTF-8&wd=%E8%B1%86%E7%93%A3fm'                #Request中可以用meta传递参数。        meta = {'TellMeWhoYouAre':'DaDeng'}        yield Request(url=url,callback=self.parse,meta=meta)

   def parse(self, response):        print(response.text)

middleware.py

在middleware代码如下。我是网上找到的,运行正常。

from scrapy import signals
from scrapy.http import HtmlResponse
from selenium import webdriver

class MyCustomDownloaderMiddleware(object):
   def process_request(self, request, spider):            #如果请求中参数值为DaDeng,执行下面的语句        if request.meta['TellMeWhoYouAre']=='DaDeng':            #我不会将Phantomjs加到环境中,所以要在这里executable_path中写上路径            driver = webdriver.PhantomJS(executable_path='/Users/suosuo/Desktop/scrapy+selenium/phantomjs')            driver.get(request.url)            #对网页数据编码为utf-8            content = driver.page_source.encode('utf-8')            driver.quit()            print('大邓'*10000)            print('===='*10000)            #这里就这么写就行            return HtmlResponse(request.url, encoding='utf-8', body=content, request=request)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python 爬虫(六):使用 Scrapy 爬取去哪儿网景区信息
python模块之Scrapy爬虫框架
浅谈Scrapy框架普通反爬虫机制的应对策略
Python爬虫:Scrapy中间件Middleware和Pipeline
小白学 Python 爬虫(37):爬虫框架 Scrapy 入门基础(五) Spider Middleware
收藏| Scrapy框架各组件详细设置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服