我的Python之路:浏览器模拟

一、浏览器模拟——Header属性

   有的时候,我们无法爬取一些网页,也就是说会出现403错误,这是因为这些网页为了防止有人恶意去采集其信息所以进行了一些反爬虫的设置。

  为了可以获取这些数据我们使用一些两种方法:

1、使用 build opener()

由于urlopen()不支持HTTP的高级运用所以我们要修改头报。可以使用urllib.request.build_opener进行如下面例子:

   

#!/uer/bin/env python
#-*-coding: utf-8 -*-
import urllib.request  ###导入import urllib.request模块

ur1="http://www.cnblogs.com/alsely/archive/2017/04/19.html"
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36")###头报
file=urllib.request.build_opener()
file.addheaders=[headers]
data=file.open(ur1).read()

print(data)
fd=open("D:/python爬虫文件目录/kood","wb")
fd.write(data)
fd.close()

 



这样就可以获取:



方法二、使用add_header()添加头报
在这我做简单的介绍:
1 #!/uer/bin/env python
2 #-*-coding: utf-8 -*-
3 import urllib.request  ###导入import urllib.request模块
4 
5 rep=urllib.request.Request("http://www.cnblogs.com/alsely/archive/2017/04/19.html")
6 rep.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36")
7 data=urllib.request.urlopen(rep).read()
8 print(data)

 

同样也可运行。
下面让我们看看具体步骤:
1、首先设置爬取的网址,然后使用
rllib.request.Request()创建一个Request()对象
并且进行赋值给rep。
2、随后我们就用add_header()方法添加报头信息。
3、我们使用urlopen()打开
Request对象即可以打开相应网址,但是在这我们在其后面添加一个read()这样就是打开并读取。


 

 

转载于:https://www.cnblogs.com/alsely/p/6759723.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值