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中操作文件之read()方法的使用教程
May 24 Python
Python 中的with关键字使用详解
Sep 11 Python
使用Python脚本和ADB命令实现卸载App
Feb 10 Python
深入探究Django中的Session与Cookie
Jul 30 Python
python定向爬取淘宝商品价格
Feb 27 Python
浅析PHP与Python进行数据交互
May 15 Python
使用python语言,比较两个字符串是否相同的实例
Jun 29 Python
python中类的属性和方法介绍
Nov 27 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
python区分不同数据类型的方法
Oct 14 Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 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
php类
2006/11/27 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
用JQuery 实现的自定义对话框
2007/03/24 Javascript
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
python flask实现分页效果
2017/06/27 Python
python保存网页图片到本地的方法
2018/07/24 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
strlen的几种不同实现方法
2013/05/31 面试题
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
成品仓管员岗位职责
2013/12/11 职场文书
安全横幅标语
2014/06/09 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
大学运动会通讯稿
2015/07/18 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
商业计划书之服装
2019/09/09 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
MySql按时,天,周,月进行数据统计
2022/08/14 MySQL