Python爬虫设置ip代理过程解析


Posted in Python onJuly 20, 2020

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")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python去掉字符串中空格的方法
Mar 11 Python
python常见数制转换实例分析
May 09 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
使用pandas把某一列的字符值转换为数字的实例
Jan 29 Python
VSCode Python开发环境配置的详细步骤
Feb 22 Python
python3对接mysql数据库实例详解
Apr 30 Python
如何利用Python模拟GitHub登录详解
Jul 15 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
Python continue语句实例用法
Feb 06 Python
Python关于__name__属性的含义和作用详解
Feb 19 Python
python 实现体质指数BMI计算
May 26 Python
Python如何使用27行代码绘制星星图
Jul 20 #Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 #Python
基于python实现生成指定大小txt文档
Jul 20 #Python
python中upper是做什么用的
Jul 20 #Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 #Python
python集合能干吗
Jul 19 #Python
python如何建立全零数组
Jul 19 #Python
You might like
利用PHP动态生成VRML网页
2006/10/09 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
如何利用python制作时间戳转换工具详解
2018/09/12 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
亲戚结婚的请假条
2014/02/11 职场文书
工厂搬迁方案
2014/05/11 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
cf战队收人口号
2014/06/21 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
详解nginx进程锁的实现
2021/06/14 Servers
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript