大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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_
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172658.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...