保护措施一:伪代理头
在使用requests库时,发出get/post请求时可以加入参数如headers、proxies、timeout等等。
在headers中,可通过写useragent和referer实现保护自己、反爬。
具体使用方法如下:
import random
import requests
from fake_useragent import UserAgent
# ua = UserAgent(path="文件指定路径")
ua = UserAgent(path=r"H:\fake-useragent0.1.11.json")
headers = {"User-Agent": ua.random,
"Referer": "路径"}
response = requests.get(url, headers=headers)
其中,fake-useragent文件如下:
Resource:链接:https://pan.baidu.com/s/1RsZiPdSdL3w6eBoDylAfAA
Password:max9
下载到本地即可。
保护措施二:随机代理IP
一般通过ip网站接口调用或自行构建ip池。
具体使用方法如下:
import random
import requests
proxies_list = ["http:27.42.168.46:55481",...]
# 如ip_num为27.42.168.46
# 如port_num为55481
proxies = proxies_list.random
response = requests.get(url, proxies=proxies)
注意,自行构建ip池需要定期维护。
保护措施三:休眠
import random
import requests
import time
for url in range(url_list):
response = requests.get(url)
time.sleep(random.randint(1,3))
return response
通过休眠的方式,模拟人类的操作行为即可。