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多进程操作实例
Nov 21 Python
Python Web框架Flask下网站开发入门实例
Feb 08 Python
python对日志进行处理的实例代码
Oct 06 Python
Python操作redis实例小结【String、Hash、List、Set等】
May 16 Python
pyQT5 实现窗体之间传值的示例
Jun 20 Python
python交易记录链的实现过程详解
Jul 03 Python
使用selenium和pyquery爬取京东商品列表过程解析
Aug 15 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
Python *args和**kwargs用法实例解析
Mar 02 Python
增大python字体的方法步骤
Jul 05 Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
PHP工程师VIM配置分享
2015/12/15 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
js 函数调用模式小结
2011/12/26 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
js剪切板应用clipboardData实例解析
2016/05/29 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
2016/11/02 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
2020/12/19 Vue.js
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
tornado框架blog模块分析与使用
2013/11/21 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
python实现学生管理系统开发
2020/07/24 Python
新媒传信软件测试面试题
2013/02/24 面试题
外企办公室竞聘演讲稿
2013/12/29 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android