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深入学习之特殊方法与多范式
Aug 31 Python
Python正则表达式使用经典实例
Jun 21 Python
python中的格式化输出用法总结
Jul 28 Python
Python OpenCV获取视频的方法
Feb 28 Python
对命令行模式与python交互模式介绍
May 12 Python
python实现猜数字小游戏
Mar 24 Python
在Python 中同一个类两个函数间变量的调用方法
Jan 31 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
python tkinter实现界面切换的示例代码
Jun 14 Python
将labelme格式数据转化为标准的coco数据集格式方式
Feb 17 Python
Django 构建模板form表单的两种方法
Jun 14 Python
python爬取招聘要求等信息实例
Nov 20 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 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
2013/05/19 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
Python性能优化的20条建议
2014/10/25 Python
python获取文件扩展名的方法
2015/07/06 Python
Python之os操作方法(详解)
2017/06/15 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
学习python的前途 python挣钱
2019/02/27 Python
python and or用法详解
2019/06/26 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
解决python运行启动报错问题
2020/06/01 Python
jupyter 添加不同内核的操作
2021/02/06 Python
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
工程承包协议书
2014/10/20 职场文书
追悼会悼词大全
2015/06/23 职场文书
运动会开幕式主持词
2015/07/01 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书