博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中使用urllib2伪造HTTP报头的2个方法
阅读量:6212 次
发布时间:2019-06-21

本文共 1415 字,大约阅读时间需要 4 分钟。

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

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

方法1、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/python
# -*- coding: utf-8 -*-
#encoding=utf-8
#Filename:urllib2-header.py
  
import
urllib2
import
sys
  
#抓取网页内容-发送报头-1
url
=
""
send_headers
=
{
 
'Host'
:
'www.jb51.net'
,
 
'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、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/python
# -*- coding: utf-8 -*-
#encoding=utf-8
#Filename:urllib2-header.py
  
import
urllib2
import
sys
  
url
=
''
  
req
=
urllib2.Request(url)
req.add_header(
'Referer'
,
''
)
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

转载地址:http://kisja.baihongyu.com/

你可能感兴趣的文章
010-Hadoop Hive sql语法详解5-HiveQL与SQL区别
查看>>
(转)Hibernate框架基础——Java对象持久化概述
查看>>
myeclipse配置内存
查看>>
浏览器的渲染原理简介
查看>>
oracle与mysql与sqlserver的分页
查看>>
整合大量开源库项目(五)跳动的TextView JumpingBeans,良好体验的滚动条ConvenientBanner...
查看>>
IntelliJ Idea 常用快捷键列表
查看>>
使用Spring定时任务并且通过AOP监控任务执行情况
查看>>
ASP.NET MVC做的微信WEBAPP中调用微信JSSDK扫一扫
查看>>
牛腩代码生成器
查看>>
【SpringMVC架构】SpringMVC入门实例,解析工作原理(二)
查看>>
P1719 最大加权矩形
查看>>
为Android Studio设置HTTP代理
查看>>
Arcgis for JS之Cluster聚类分析的实现
查看>>
远程桌面连接保存登陆用户以及密码(凭据)备份方法
查看>>
R0~R16寄存器作用
查看>>
data-packed volume container - 每天5分钟玩转 Docker 容器技术(43)
查看>>
hdu-2066-一个人的旅行
查看>>
Docker实践(5)—资源隔离
查看>>
RecyclerView
查看>>