scrapy使用代理ip_useragent怎么改

scrapy使用代理ip_useragent怎么改#使用了fake库fromfake_useragentimportUserAgent#配置headersclassRandomUserAgentMidddlware(object):#随机更换user-agentdef__init__(self,crawler):super(RandomUserAgentMidddlware,self).__init__()self.ua=UserAgent()#.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

# 使用了fake库
from fake_useragent import UserAgent


# 配置headers
class RandomUserAgentMidddlware(object):
    # 随机更换user-agent
    def __init__(self, crawler):
        super(RandomUserAgentMidddlware, self).__init__()
        self.ua = UserAgent()
        # 从配置文件读取随机类型
        self.ua_type = crawler.settings.get('RANDOM_UA_TYPE', 'random')

    @classmethod
    def from_crawler(cls, crawler):
        return cls(crawler)

    def process_request(self, request, spider):
        # 通过配置文件的随机类型进行调用
        def get_ua():
            return getattr(self.ua, self.ua_type)

        request.headers.setdefault('User-Agent', get_ua())

# 使用了阿里云的IP代理服务
from myscrapy.aliproxy import get_proxy_ip


# 配置代理
class ProxyMiddleware(object):
    def process_request(self, request, spider):
        request.meta['proxy'] = get_proxy_ip()

setting中开启中间件:

DOWNLOADER_MIDDLEWARES = {
    'myscrapy.middlewares.MyscrapyDownloaderMiddleware': 543,
    'myscrapy.middlewares.RandomUserAgentMidddlware': 0,
    'myscrapy.middlewares.ProxyMiddleware': 1,
}

封装阿里云IP代理:

import urllib.request
import json


def get_proxy_ip():
    host = 'http://zip.market.alicloudapi.com'
    path = '/devtoolservice/ipagency'
    method = 'GET'
    appcode = 'xxxxxxxxxxxx'
    querys = 'foreigntype=0&protocol=0'
    bodys = {}
    url = host + path + '?' + querys

    request = urllib.request.Request(url)
    request.add_header('Authorization', 'APPCODE ' + "xxxxxxxxx")
    response = urllib.request.urlopen(request)
    content = response.read()
    if (content):
        load = json.loads(str(content, encoding='utf8'))
        address_ = load['result'][0]['address']
        return address_

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172658.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ‘android.support.v4.content‘ that cannot be safely rewritten. for androidx

    ‘android.support.v4.content‘ that cannot be safely rewritten. for androidx

    2021年10月2日
    151
  • SoapUI 使用教程链接

    SoapUI 使用教程链接http://luyongxin88.blog.163.com/blog/#m=0&t=3&c=soapui

    2022年6月16日
    29
  • Linux基本操作命令 实验

    Linux基本操作命令 实验一、实验目的:1. 熟悉Linux基本命令。2. 熟悉Linux操作系统。二、实验环境:一台装有Linux的机器。三、实验内容:1.文件操作命令的使用。用vi编辑器新建一个testl文件输入thisistestl~!查看文件与目录ls进入Linux系统,输入ls-m按回车键执行。 一、实验目的:1. 熟悉Linux基本命令。2. 熟悉Linux操作系统。 二、实验环境:一台装有Linux的机器…

    2022年9月29日
    6
  • 使用EDU邮箱申请JetBrains学生包免费使用一年JetBrains全家桶

    使用EDU邮箱申请JetBrains学生包免费使用一年JetBrains全家桶写在最前,使用EDU邮箱申请JetBrains学生包可以免费使用一年JetBrains全家桶欢迎光顾本人的博客,以后会经常记录生活点滴,学习工作所见1.首先你需要一个EDU邮箱JetBrains学生包的申请很简单,所以国内的EDU邮箱也可以.2.进去JetBrains官网注册账号,这个邮箱可以自己随便选,用自己的邮箱就可以.!之后会给你的邮箱发送一个验证邮件,点击激活…

    2022年7月25日
    27
  • android .dex文件探究

    android .dex文件探究在我们写Java代码的时候,生成的文件是.java文件,但是JVM并不识别这个,所以会先转成class文件,而在Android端,Android上的Davlik虚拟机能运行.dex。所以dex文件中包含了所有的app代码,可利用反编译工具获取java代码。即dex文件就是AndroidDalvik虚拟机运行的程序。为了能够加深印象,我们先构造一个dex文件。publicclassDEX…

    2022年6月27日
    24
  • 如何关闭time wait连接「建议收藏」

    如何关闭time wait连接「建议收藏」如何关闭timewait连接

    2022年5月1日
    71

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号