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的id()函数解密过程
Dec 25 Python
Python元组及文件核心对象类型详解
Feb 11 Python
Python+OpenCV实现图像融合的原理及代码
Dec 03 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
python绘制地震散点图
Jun 18 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
django中间键重定向实例方法
Nov 10 Python
Python TCPServer 多线程多客户端通信的实现
Dec 31 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
Python接口测试文件上传实例解析
May 22 Python
Django展示可视化图表的多种方式
Apr 08 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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
nodejs基础知识
2017/02/03 NodeJs
vue实现动态数据绑定
2017/04/28 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
python实现zabbix发送短信脚本
2018/09/17 Python
python 求一个列表中所有元素的乘积实例
2019/06/11 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
python模块导入的方法
2019/10/24 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
体育教育专业毕业生自荐信
2013/11/15 职场文书
优秀员工自荐书范文
2013/12/08 职场文书
创业计划书六个要素
2013/12/26 职场文书
社区十八大感言
2014/01/19 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
运动会加油稿
2015/07/22 职场文书
优质护理服务心得体会
2016/01/22 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
Python制作表白爱心合集
2022/01/22 Python
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers