网站防采集的前提就是要正确地区分人类访问用户和网络机器人。虽然网站可以使用很多识别技术(比如验证码)来防止爬虫,但还是有一些十分简单的方法,可以让你的网络机器人看起来更像人类访问用户。
构造HTTP 请求头,可以使机器人网络爬取机器人更像一个访问用户
1.在没有使用HTTP请求头时,我们来获取CSDN一篇博客的网页内容时情况是这样的:
代码如下:
# coding utf-8
import requests
def get_content():
html = requests.get("http://blog.csdn.net/m_wbcg/article/details/70243372")
return html.text
print(get_content())
结果:
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>
请求被禁止掉了
2.使用HTTP请求头时。
代码如下:
# coding utf-8
import requests
def get_content():
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'
}
html = requests.get("http://blog.csdn.net/m_wbcg/article/details/70243372",headers=header)
return html.text
print(get_content())
结果:
这次我们就得到了我们想得到的结果了
构造合理的HTTP请求头只是最简单的一种方法