requests爬虫五大反反爬机制

提及爬虫相信大家都知道,今天为大家介绍五点解决反爬的机制。

1、SSL证书验证错误

错误:

requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 
'tls_process_server_certificate', 'certificate verify failed')],)",)

解决办法

import requests 

url = "https://www.baidu.com/"
response = requests.get(url,verify=False).content.decode()     # 默认解码方式为UTF-8
print(response)

2、用户user-agent过于频繁

注意:有些网站会统计单个user-agent单位时间访问服务器的次数。
解决方法:

pip install fake_useragent      # 安装ua库
from fake_useragent import UserAgent
import requests 

url = 'https://www.baidu.com/'
ua = UserAgent().random
header = {
        'User-Agent': ua
 }
response = requests.get(url, headers=header, verify=False).content.decode()
print(response)

3、代理

注意:不仅为了保护自己,也为了提高爬虫的效率,安全度高,可以使用代理,但是成本高。

解决方法:

import requests 

proxy = { 
			"http": "http://12.13.1.10:1234",
			 "https": "http://12.11.2.15:2048", 
			 } 
response = requests.get("https://www.baidu.com/", proxies=proxy).content.decode())
print(response)

4、time.sleep()延时操作

注意:服务器反爬不仅是为了保护数据安全,也为了保护服务器本身。爬虫速度过快会导致服务器下跪。

解决方法:

import time
import requests 

time.sleep(5)       # 休眠五分钟
url = 'https://www.baidu.com/'
response = requests.get(url).content.decode()
print(response)

5、在headers中添加Referer

Referer:目标网址

示例:

url = 'https://www.baidu.com/'
ua = UserAgent().random
header = {
		'Referer': 'https://www.baidu.com/',
        'User-Agent': ua
 }
response = requests.get(url, headers=header, verify=False).content.decode()
print(response)

你可能感兴趣的:(python,爬虫)