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实现统计英文单词个数及字符串分割代码
May 28 Python
python自带的http模块详解
Nov 06 Python
Python 数据结构之队列的实现
Jan 22 Python
Python制作刷网页流量工具
Apr 23 Python
Python实现定时精度可调节的定时器
Apr 15 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
python爬取酷狗音乐排行榜
Feb 20 Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 Python
Python如何发送与接收大型数组
Aug 07 Python
python如何利用cv2模块读取显示保存图片
Jun 04 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编程实现获取excel文档内容的代码实例
2011/06/28 PHP
yii操作cookie实例简介
2014/07/09 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
JS Array对象入门分析
2008/10/30 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
2015/06/15 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python生成pdf文件的方法
2014/08/04 Python
spyder常用快捷键(分享)
2017/07/19 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
2014年电厂个人工作总结
2014/11/27 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
在Python中如何使用yield
2021/06/07 Python
Golang 切片(Slice)实现增删改查
2022/04/22 Golang
mysql查找连续出现n次以上的数字
2022/05/11 MySQL