Python 爬虫免人机验证的一个方法,反爬虫【爬虫必修课2】
在Python爬虫中,免免去人机验证的一个常见方法是使用代理服务器和用户代理(User-Agent)替换。以下是一个简单的示例,展示如何在requests库中使用代理和随机的用户代理来绕过简单的反爬虫机制。
import requests
from fake_useragent import UserAgent
def download_page(url, proxy=None):
# 生成随机的User-Agent
ua = UserAgent()
headers = {'User-Agent': ua.random}
try:
if proxy:
response = requests.get(url, headers=headers, proxies=proxy)
else:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
else:
return "Error downloading the page"
except requests.exceptions.RequestException:
return "Error downloading the page"
# 使用时,可以传入代理服务器地址,例如:
# proxy = {'http': 'http://123.123.123.123:8080', 'https': 'https://123.123.123.123:8080'}
# content = download_page('https://example.com', proxy)
这段代码首先导入了requests和fake\_useragent库,后者用于生成随机的用户代理。download_page
函数接受一个URL和一个可选的代理参数,并使用requests库下载页面。如果提供了代理,则使用该代理;如果没有,则不使用代理。
在实际应用中,你需要有有效的代理服务器地址,并可能需要经常更换代理以避免被封禁。使用代理时,确保遵守服务提供商的使用条款,并在合适的情况下购买或使用合法的代理服务。
评论已关闭