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)
上一篇 2022年8月24日 上午8:36
下一篇 2022年8月24日 上午8:36


相关推荐

  • 关于layuiAdmin 后台管理模板购买授权的问题

    关于layuiAdmin 后台管理模板购买授权的问题购买授权之前 建议认真阅读下述 解惑 以免造成不必要的困惑 另外也可以阅读 layui 付费产品服务条款 注意 layuiAdmin 受国家计算机软件著作权保护 登记号 2018SR 不得恶意分享产品源代码 二次转售等 违者必究 应该如何选择版本 通常我们推荐您选择 套餐版 它同时包含了 单页版 和 iframe 版 你随时可根据项目需求和团队情况 自由切换 但如果你

    2025年9月5日
    9
  • CurrentHashMap的实现原理

    CurrentHashMap的实现原理hash表介绍哈希表就是一种以键-值(key-indexed)存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。链式hash表链式哈希表从根本上说是由一组链表…

    2022年6月18日
    22
  • 阻止中文输入时触发input事件

    阻止中文输入时触发input事件做限制输入框可输入最大的长度和实时匹配输入框数据时遇到了坑——当中文输入时input事件也会被触发,即假设限制的是2个字符,你要输入社会人的“社(she)”,就会直接被截取,输入框填充文本sh。或者是在中文输入法时也会一直去调接口,匹配数据,影响了页面的性能!代码如下:$(document).on(‘input’,’input’,function(){console.log(‘限制…

    2022年5月24日
    39
  • 创建阿里云docker镜像仓库,并把java项目打包为镜像上传到阿里云镜像仓库

    创建阿里云docker镜像仓库,并把java项目打包为镜像上传到阿里云镜像仓库创建阿里云 docker 镜像仓库 并把 java 项目打包为镜像上传到阿里云镜像仓库

    2026年3月17日
    2
  • python读取csv文件,将文件中第一列显示出来

    python读取csv文件,将文件中第一列显示出来文件:stu_info.csv代码:importcsv#导入csv模块try:file=open(‘stu_info.csv’,’r’)#打开文件exceptFileNotFoundError:print(‘文件不存在’)else:stus=csv.reader(file)#读取文件内容forstu…

    2025年6月14日
    4
  • 爱思唯尔(Elsevier)出版公司_斯普林格期刊

    爱思唯尔(Elsevier)出版公司_斯普林格期刊首先请正确安装latex软件!介绍网址:https://www.elsevier.com/authors/author-schemas/latex-instructions模板elsarticle.cls下载网址:http://www.ctan.org/tex-archive/macros/latex/contrib/elsarticle直接下载:Down­load网页打不…

    2022年10月11日
    5

发表回复

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

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