zoukankan      html  css  js  c++  java
  • 小爬爬6:中间件

    1.

    中间件:下载中间件
        - 下载中间件的作用:批量拦截整个工程中发起的所有请求和响应
        - 拦截请求:
            - UA伪装:
            - 代理ip:
        - 拦截响应:

    4567电影

     

     

     修改下面的配置

    上边是设置的三个部分配置

    注意要注释掉,上边的默认君子协定

    USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
    ROBOTSTXT_OBEY = False
    LOG_LEVEL='ERROR'

     爬虫中中间件的爬取

    下面我们看一下中间件文件中的内容.

    我们只需要保留中间件中的三个process方法即可.

    这个类是批量拦击所有的请求和响应

     

    一些功能:

    中间件:下载中间件
        - 下载中间件的作用:批量拦截整个工程中发起的所有请求和响应
        - 拦截请求:
            - UA伪装:
            - 代理ip:
        - 拦截响应:

    上边的配置文件settings.py其实不写ua也行,在中间件middle中修改也行

    下面写一个user_agent_list

    user_agent_list = [
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 "
            "(KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
            "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 "
            "(KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 "
            "(KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
            "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 "
            "(KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
            "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 "
            "(KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
            "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 "
            "(KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
            "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 "
            "(KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
            "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
            "(KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
            "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 "
            "(KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
            "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 "
            "(KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
    ]
    View Code

    下面进行代理IP的设置

    代理IP池

        PROXY_http = [
            '153.180.102.104:80',
            '195.208.131.189:56055',
        ]
        PROXY_https = [
            '120.83.49.90:9000',
            '95.189.112.214:35508',
        ]

     

     

    注意:现在不说的不代表不重要,但是可以先不考虑使用,有机会在学习

    我们再配置文件中写上边的两个属性,UA已经在中间件中写了

    这个时候,我们执行一下爬虫文件:

    没有打印请求中间件,代表没有执行这个函数

    我们需要在settings.py中开启下载中间件:

    这个时候,我们的中间件执行了

    我们可以将部分可以用的代理IP用

    拦截响应什么时间做?为什么这么做?之后怎么做?

    自己写一个响应对象.new实例化一个新的,这个比较麻烦

     目的:不符合需求的对其进行修改.

  • 相关阅读:
    java监听器之实现在线人数显示
    java之web开发过滤器
    java之MVC开发模式
    java之jsp内置对象
    java之jsp页面语法
    java之jsp实现动态网页
    java数据库(MySQL)之增删改查
    java数据库之JDBC
    java线程之线程通信控制
    java线程之线程通信
  • 原文地址:https://www.cnblogs.com/studybrother/p/10970812.html
Copyright © 2011-2022 走看看