python中使用urllib2伪造HTTP报头的2个方法


Posted in Python onJuly 07, 2014

在采集网页信息的时候,经常需要伪造报头来实现采集脚本的有效执行

下面,我们将使用urllib2的header部分伪造报头来实现采集信息

方法1、

#!/usr/bin/python
# -*- coding: utf-8 -*-
#encoding=utf-8
#Filename:urllib2-header.py
 
import urllib2
import sys
 
#抓取网页内容-发送报头-1
url= "https://3water.com"
send_headers = {
 'Host':'3water.com',
 'User-Agent':'Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0',
 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'Connection':'keep-alive'
}
 
req = urllib2.Request(url,headers=send_headers)
r = urllib2.urlopen(req)
 
html = r.read()        #返回网页内容
receive_header = r.info()     #返回的报头信息
 
# sys.getfilesystemencoding() 
html = html.decode('utf-8','replace').encode(sys.getfilesystemencoding()) #转码:避免输出出现乱码 
 
print receive_header
# print '####################################'
print html

方法2、

#!/usr/bin/python
# -*- coding: utf-8 -*-
#encoding=utf-8
#Filename:urllib2-header.py
 
import urllib2
import sys
 
url = 'https://3water.com'
 
req = urllib2.Request(url)
req.add_header('Referer','https://3water.com/')
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0')
r = urllib2.urlopen(req)
 
html = r.read()
receive_header = r.info()
 
html = html.decode('utf-8').encode(sys.getfilesystemencoding())
 
print receive_header
print '#####################################'
print html
Python 相关文章推荐
Python解析xml中dom元素的方法
Mar 12 Python
用Python进行TCP网络编程的教程
Apr 29 Python
python控制台中实现进度条功能
Nov 10 Python
详解Python中的__getitem__方法与slice对象的切片操作
Jun 27 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
在pycharm中设置显示行数的方法
Jan 16 Python
PyTorch中的padding(边缘填充)操作方式
Jan 03 Python
python模式 工厂模式原理及实例详解
Feb 11 Python
Python json读写方式和字典相互转化
Apr 18 Python
python中如何写类
Jun 29 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 Python
python实现多线程采集的2个代码例子
Jul 07 #Python
Python程序员开发中常犯的10个错误
Jul 07 #Python
python采用requests库模拟登录和抓取数据的简单示例
Jul 05 #Python
浅析python 中__name__ = '__main__' 的作用
Jul 05 #Python
python在windows下实现备份程序实例
Jul 04 #Python
python调用短信猫控件实现发短信功能实例
Jul 04 #Python
Python实现类继承实例
Jul 04 #Python
You might like
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
利用python获得时间的实例说明
2013/03/25 Python
python+django快速实现文件上传
2016/10/24 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
Python接口测试文件上传实例解析
2020/05/22 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
生物技术专业毕业生求职信范文
2013/12/14 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
工程质检员岗位职责
2015/04/08 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS