Python爬虫设置ip代理过程解析
作者:知人知面 时间:2021-05-27 15:08:30
1、get方式:如何为爬虫添加ip代理,设置Request header(请求头)
import urllib
import urllib.request
import urllib.parse
import random
import time
from fake_useragent import UserAgent
ua = UserAgent()
url = "http://www.baidu.com"
########################################################
'''
设置ip代理
iplist = [ '127.0.0.1:80'] #可自行上网找一些代理
proxy_support = urllib.request.ProxyHandler({'http':random.choice(iplist)}) #也可以设置为https,要看你的代理支不支持
opener = urllib.request.build_opener(proxy_support)
'''
########################################################
'''无ip代理'''
opener = urllib.request.build_opener()
'''f12查看请求头添加即可,不一定都需要全添加↓↓↓'''
opener.addheaders = [('Host', 'newtab.firefoxchina.cn'),
('User-Agent',ua.random),
('Accept-Encoding','deflate, br'),
('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'),
('Accept-Language', 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2'),
('Connection', 'keep-alive'),
('Upgrade-Insecure-Requests',1),
('Cookie', '__gads=ID=138080209be66bf8:T=1592037395:S=ALNI_Ma-g9wHmfxFL4GCy9veAjJrJRsNmg; Hm_lvt_dd4738b5fb302cb062ef19107df5d2e4=1592449208,1592471447,1592471736,1594001802; uid=rBADnV7m04mi8wRJK3xYAg=='),
]
urllib.request.install_opener(opener)
while True:
try:
response = urllib.request.urlopen(url)
break
except Exception as e:
print("错误信息:" + str(e))
time.sleep(3)
html = response.read().decode("utf-8")
print(html)
2、post方式添加载荷(此处是打比方),修改urllib.request.install_opener(opener)以下的代码即可
urllib.request.install_opener(opener)
# data = {} #当页面提交数据是有载荷但是载荷内容为空时,必须以data = {}传参,不然无法获取网页数据
data = {'_csrf':'请把',
'collection-name':'载荷的参数',
'description':'以这种形式',
'_csrf':'装载'
}
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url,data)
while True:
try:
response = urllib.request.urlopen(req)
break
except Exception as e:
print("错误信息:" + str(e))
time.sleep(3)
html = response.read().decode("utf-8")
来源:https://www.cnblogs.com/zrzm/p/13332371.html
标签:Python,爬虫,ip,代理
0
投稿
猜你喜欢
一篇文章带你自学python Django
2023-11-13 20:33:13
numpy.insert用法及内插插0的方法
2023-03-28 10:06:13
MySQL性能分析工具profile使用教程
2024-01-18 15:37:01
C#利用ODP.net连接Oracle数据库的操作方法
2024-01-27 03:17:26
ASP.NET Core Authentication认证实现方法
2023-07-21 12:21:31
python实现一个简单的贪吃蛇游戏附代码
2022-10-21 13:27:30
对vue.js中this.$emit的深入理解
2024-04-26 17:40:12
Python Tornado框架轻松写一个Web应用的全过程
2022-05-10 10:38:36
详解Python flask的前后端交互
2023-03-19 06:41:05
python实现简单学生信息管理系统
2022-01-28 12:40:00
解决python3 HTMLTestRunner测试报告中文乱码的问题
2021-10-19 04:34:06
Pthon批量处理将pdb文件生成dssp文件
2021-10-07 13:11:04
简单了解Go语言中函数作为值以及函数闭包的使用
2024-04-29 13:05:50
Access2000迁移到Oracle9i要点
2024-01-21 10:16:37
在ASP.NET 2.0中操作数据之六十八:为DataTable添加额外的列
2024-05-09 09:03:27
py中的目录与文件判别代码
2023-06-01 03:32:06
使用Navicat Premium将SQLServer数据导出为sql格式
2024-01-18 20:57:11
asp.net“服务器应用程序不可用” 解决方法
2023-06-29 10:05:30
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2021-04-16 10:50:05
SQL游标原理和使用方法
2008-12-22 10:50:00