04.url传参

文章介绍了在进行频繁访问服务器时,如何通过改变User-Agent来防止被识别为爬虫。方法一是建立User-Agent池,每次请求随机选取一个User-Agent;方法三是使用第三方库fake_useragent,它能自动生成随机的User-Agent字符串。这样可以增加请求的多样性,降低被服务器标记为异常的风险。
摘要由CSDN通过智能技术生成

4.1 url传参的目的

需要短时间内连续访问同一个服务器很多次这样一个需求
headers_ = {“User-Agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36”}
在服务器端会有记录
同一个User-Agent 3s 上百次 非正常用户行为 以此来判断你是一个爬虫程序

4.2 方法一:User-Agent 池

可以理解成是一个列表 很多的Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36
100次请求
每一次请求,都从User-Agent池里面随机拿一个身份 张三 李四 五二 赵六

import requests
# 简单演示如何使用
import random
# 1.使用列表,里面存放很多的User-Agent的值
user_agent_list = [
    'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
    'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.12',
    'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.13',
    'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.14',
    'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.15',
]

# 获取一个随机整数,作为列表的索引值
num = random.randint(0,4)    # 前后都包,04都有可能取到

# 打印获取到的索引
# print(num)
#
# 打印随机 选取的user-agent
# print(user_agent_list[num])
# print('*'*80)
# if __name__ == '__main__':
#     url_ = 'https://www.baidu.com'
#
#     headers_ = {
#         'User-Agent':user_agent_list[num]
#     }
#
#     # 每次请求,都携带上随机的User-Agent
#     response_ = requests.get(url_,headers=headers_)
#
#     # 打印百度服务器端检测到我们用的用户代理身份
#     print(response_.request.headers)
#

4.3 方法三:使用第三方库fake_useragent

pip install fake-useragent -i https://pypi.doubanio.com/simple

from fake_useragent import FakeUserAgent
import requests
user_agent_demo = FakeUserAgent().random   # 这个random不需要导入

print(user_agent_demo)
print('*'*80)

if __name__ == '__main__':
    url_ = 'https://www.baidu.com'

    headers_ = {
        'User-Agent':user_agent_demo
    }

    # 每次请求,都携带上随机的User-Agent
    response_ = requests.get(url_,headers=headers_)

    # 打印百度服务器端检测到我们用的用户代理身份
    print(response_.request.headers)

若调用失败:

终极方法:
ctrl点击FakeUserAgent进入源码 > ctrl点击settings进入源码 > 第16 CACHE_SERVER 这里有一个https,把s去掉
如果有弹窗,点击OK > 再把s去掉:CACHE_SERVER = ‘http://fake-useragent.herokuapp.com/browsers/{version}’
多运行几遍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

<REAL>和光同尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值