python定向爬虫_Python定向爬虫实战

一:requests模块介绍

requests是第三方http库,可以十分方便地实现python的网络连接,完美替代了urllib2模块。

二:原理

使用requests实现定向爬虫需要两步:首先使用requests获取目标网页的源代码;然后使用requests与正则表达式从中提取信息。

获取源码有两种方式:

使用requests.get(url).text可以直接获取无反爬虫机制的网页的源码;

但对于有反爬虫机制的网页,上面的简单手段是不能完整获取到网页源码的,只能读取到网页中robot中的内容,提示你该网页禁止爬取。

此时,可以修改http头,然后在requests.get时把头传进去,戴上伪装帽子,即可正常访问目标网页并获取源码了。

首先,我们用浏览器打开目标网页,右键—>审查元素(火狐)、检查(谷歌)

然后在打开的面板中,选择 NetWork 选项卡。

最后,在选项卡下面一行行的网络请求中随便点击一个,打开详情,拖到最下面RequestHeader项的底部,找到User-Agent,复制它。

这个User-Agent就是我们需要的伪装了,我们用这个为爬虫模拟出一个浏览器访问页面的请求,从而绕过网页的反爬虫协议。

#coding:utf8

importrequests#从浏览器中复制过来的伪装头

head={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}#使用伪装头发出请求

html=requests.get("https://www.bilibili.com/",headers=head)#指定编码格式,避免中文乱码

html.encoding= 'utf8'

#获取网页源码

print html.text

然后,就可以用正则表达式从网页源码提取内容了。

三:实战

#coding:utf8

importrequestsimportre#从浏览器中复制过来的伪装头

head={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}#使用伪装头发出请求

html=requests.get("https://git.oschina.net/",headers=head)#指定编码格式,避免中文乱码

html.encoding= 'utf8'

#获取网页源码

src=html.text#使用正则表达式提取内容,这里提取网页中的http链接:注意使用 () 提取想要的匹配信息

urls=re.findall('href="(http.*?)"',src)for url inurls:print url

结果:

http://www.oschina.net

http://git.mydoc.io

http://weibo.com/mayunOSC

http://www.51idc.com/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值