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编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
Python批量查询域名是否被注册过
Jun 21 Python
Python学习入门之区块链详解
Jul 25 Python
你真的了解Python的random模块吗?
Dec 12 Python
python之pandas用法大全
Mar 13 Python
对python requests的content和text方法的区别详解
Oct 11 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
Nov 07 Python
Python matplotlib画曲线例题解析
Feb 07 Python
Windows下Anaconda和PyCharm的安装与使用详解
Apr 23 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
python collections模块的使用
Oct 16 Python
python基于opencv实现人脸识别
Jan 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在数组中查找指定值的方法
2015/03/17 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
Python分割训练集和测试集的方法示例
2019/09/19 Python
Python有参函数使用代码实例
2020/01/06 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
出国留学介绍信
2014/01/13 职场文书
留学生求职信
2014/06/03 职场文书
关于安全的广播稿
2014/10/23 职场文书
2015初中团委工作总结
2015/07/28 职场文书
会计实训总结范文
2015/08/03 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书
《秋思》教学反思
2016/02/23 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
JS如何实现基于websocket的多端桥接平台
2021/05/14 Javascript
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
Redis 限流器
2022/05/15 Redis