当前位置: 首页 > news >正文

Python爬虫之代理的设置

【1】urllib中使用公开代理

import urllib.requesturl = 'http://www.baidu.com/s?wd=ip'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}# 请求对象的定制
request = urllib.request.Request(url = url,headers= headers)# 模拟浏览器访问服务器
proxies = {'http':'ip:16818'
}
# handler  build_opener  open
handler = urllib.request.ProxyHandler(proxies = proxies)opener = urllib.request.build_opener(handler)response = opener.open(request)# 获取响应的信息
content = response.read().decode('utf-8')# 保存
with open('daili.html','w',encoding='utf-8')as fp:fp.write(content)

【2】urllib中使用鉴权代理

也就是需要用户名和密码。

import urllib.request
from urllib.error import URLError, HTTPError# 代理服务器的地址、端口、用户名和密码 121.11.171.10:16818
proxy_host = '121.11.171.10'
proxy_port = '16818'
username = 'jane'
password = '123456'
url = 'http://www.baidu.com/s?wd=ip'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}# 创建一个密码管理对象
password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()
# 添加代理服务器的认证信息,第一个参数一般填None表示默认领域
password_mgr.add_password(None, proxy_host, username, password)# 创建一个代理基础认证处理器
proxy_auth_handler = urllib.request.ProxyBasicAuthHandler(password_mgr)# 创建一个 opener 对象
opener = urllib.request.build_opener(proxy_auth_handler)# 将创建好的opener安装为全局的,这样后续的请求都会使用这个opener(也可以选择不安装全局,每次请求时手动调用opener的open方法)
urllib.request.install_opener(opener)# 创建请求对象,这里以访问百度为例
request = urllib.request.Request('https://www.baidu.com')
response = opener.open(request)# 可以对响应进行后续处理,比如读取内容等
html = response.read().decode('utf-8')
print(html)

【3】Scrapy中设置鉴权单个代理

# 设置代理服务器地址(包含端口),将下面示例中的IP、端口、用户名、密码替换为真实有效的内容
PROXY_SERVER = "http://username:password@proxy_ip:proxy_port"# 在下载中间件中启用代理
DOWNLOADER_MIDDLEWARES = {'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 1,
}

这里的username是代理账号,password是对应的密码,proxy_ip是代理服务器的 IP 地址,proxy_port是代理服务器的端口号。

【4】Scrapy中设置鉴权代理池

在这里插入代码片
http://www.lryc.cn/news/506909.html

相关文章:

  • Canoe E2E校验自定义Checksum算法
  • [HNCTF 2022 Week1]你想学密码吗?
  • 端到端自动驾驶大模型:视觉-语言-动作模型 VLA
  • druid与pgsql结合踩坑记
  • 【xxl-job】XXL-Job源码深度剖析:分布式任务调度的艺术与实践
  • 图漾相机-ROS1_SDK_ubuntu版本编译(新版本)
  • 项目二十三:电阻测量(需要简单的外围检测电路,将电阻转换为电压)测量100,1k,4.7k,10k,20k的电阻阻值,由数码管显示。要求测试误差 <10%
  • 【NLP 17、NLP的基础——分词】
  • uniapp blob格式转换为video .mp4文件使用ffmpeg工具
  • 【无标题】 [蓝桥杯 2024 省 B] 好数
  • Leecode刷题C语言之同位字符串连接的最小长度
  • Pytorch | 利用BIM/I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
  • 音频进阶学习八——傅里叶变换的介绍
  • 将4G太阳能无线监控的视频接入电子监控大屏,要考虑哪些方面?
  • 使用docker拉取镜像很慢或者总是超时的问题
  • Redis数据库笔记
  • U盘出现USBC乱码文件的全面解析与恢复指南
  • 多线程 - 自旋锁
  • vue2 - Day02 -计算属性(computed)、侦听器(watch)和方法(methods)
  • Linux C 程序 【05】异步写文件
  • Liveweb视频汇聚平台支持WebRTC协议赋能H.265视频流畅传输
  • SQL组合查询
  • 方正畅享全媒体新闻采编系统 screen.do SQL注入漏洞复现
  • 【机器学习】【集成学习——决策树、随机森林】从零起步:掌握决策树、随机森林与GBDT的机器学习之旅
  • Flink执行模式(批和流)如何选择
  • LeetCode:101. 对称二叉树
  • LDO输入电压不满足最小压差时输出会怎样?
  • 源码分析之Openlayers中ZoomSlider滑块缩放控件
  • 在Win11系统上安装Android Studio
  • 华为ensp--BGP路径选择-AS_Path