在Python爬虫库中,设置抓取频率主要是通过控制请求头中的User-Agent和设置延迟时间来实现。以下是一些建议的步骤:
import time
import random
import requests
from bs4 import BeautifulSoup
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
}
time.sleep()
函数和random.uniform()
函数来实现。def random_delay():
time.sleep(random.uniform(1, 3)) # 设置延迟时间在1到3秒之间
requests.get()
函数发送请求,并使用BeautifulSoup库解析页面内容。def get_page(url):
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
else:
print(f"请求失败,状态码:{response.status_code}")
return None
get_page()
函数获取页面内容,然后解析页面并提取所需信息。在每次请求之后,调用random_delay()
函数设置延迟时间。def main():
url = "https://example.com" # 目标网址
while True:
page_content = get_page(url)
if page_content:
soup = BeautifulSoup(page_content, "html.parser")
# 解析页面内容,提取所需信息
# ...
random_delay() # 设置延迟时间
if __name__ == "__main__":
main()
通过以上步骤,我们可以设置爬虫的抓取频率,降低被目标网站封禁的风险。请注意,实际应用中可能需要根据目标网站的特性调整延迟时间和User-Agent。