Python定向爬虫实战

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python定向爬虫实战相关的知识,希望对你有一定的参考价值。

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7019963.html 

 

一:requests模块介绍

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

 

二:实战

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

1:获取源码

获取源码有两种方式:

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

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

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

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

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

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

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

#coding:utf8
import requests
#从浏览器中复制过来的伪装头
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

 

以上是关于Python定向爬虫实战的主要内容,如果未能解决你的问题,请参考以下文章

爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别

淘宝商品与股票数据爬虫实战

Python爬虫编程思想:实战案例:抓取博客文章列表

scrapy按顺序启动多个爬虫代码片段(python3)

scrapy主动退出爬虫的代码片段(python3)

Python网络爬虫与信息提取(中国大学mooc)