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实现从web抓取文档的方法
Sep 26 Python
Python multiprocessing.Manager介绍和实例(进程间共享数据)
Nov 21 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
Python list运算操作代码实例解析
Jan 20 Python
Python视频编辑库MoviePy的使用
Apr 01 Python
python实现程序重启和系统重启方式
Apr 16 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
python绘制分布折线图的示例
Sep 24 Python
利用Python将多张图片合成视频的实现
Nov 23 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
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
第七章 php自定义函数实现代码
2011/12/30 PHP
解析PHP多种序列化与反序列化的方法
2013/06/06 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
php实现贪吃蛇小游戏
2016/07/26 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
Python获取远程文件大小的函数代码分享
2014/05/13 Python
Python决策树分类算法学习
2017/12/22 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
python实现停车管理系统
2018/11/30 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
Python 如何在字符串中插入变量
2020/08/01 Python
奥地利网上书店:Weltbild
2017/07/14 全球购物
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
大学生文员专业个人求职信范文
2014/01/05 职场文书
企业宣传策划方案
2014/05/29 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
三八妇女节寄语
2015/02/27 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
JAVA API 实用类 String详解
2021/10/05 Java/Android
Python数据结构之队列详解
2022/03/21 Python