码迷,mamicode.com
首页 > 其他好文 > 详细

scrapy中使用selenium来爬取页面

时间:2020-03-14 16:34:15      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:driver   ide   ddl   drive   pid   sel   使用   抓取   直接   

scrapy中使用selenium来爬取页面

from selenium import webdriver
from scrapy.http.response.html import HtmlResponse


class JianShuDownloaderMiddleware:
    def __init__(self):
        self.driver = webdriver.Chrome()

    def process_request(self, request, spider):
        self.driver.get(request.url)
        response = HtmlResponse(
            url=self.driver.current_url,
            body=self.driver.page_source,
            encoding='utf-8',
        )
        return response
  • scrapy中如果下载中间件的process_request返回的是一个response对象,那么它会直接将该response返回
  • 在这里利用selenium将网页渲染过的html抓取下来,然后在将其转换为scrapy所能解析的response对象
  • 最后在spider中的parse方法中拿到的response对象就是这里抓取到的response
  • 开启中间件需要在setting中配置,或者在spider中通过custom_settings来进行开启

scrapy中使用selenium来爬取页面

标签:driver   ide   ddl   drive   pid   sel   使用   抓取   直接   

原文地址:https://www.cnblogs.com/ivy-blogs/p/12492443.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!