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代码来绘制彭罗斯点阵的教程
Apr 03 Python
Python xlrd读取excel日期类型的2种方法
Apr 28 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
Python闭包函数定义与用法分析
Jul 20 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
python截取两个单词之间的内容方法
Dec 25 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
python的time模块和datetime模块实例解析
Nov 29 Python
使用python求斐波那契数列中第n个数的值示例代码
Jul 26 Python
python闭包与引用以及需要注意的陷阱
Sep 18 Python
python音频处理的示例详解
Dec 23 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 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文件上传操作实例详解
2016/09/27 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
构造函数+原型模式构造js自定义对象(最通用)
2014/05/12 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
python保存数据到本地文件的方法
2018/06/23 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
浅谈python标准库--functools.partial
2019/03/13 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
中学实习教师自我鉴定
2013/12/12 职场文书
军训自我鉴定
2014/01/22 职场文书
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python
MySQL学习之基础操作总结
2022/03/19 MySQL
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL