无法替换UserAgent求助:用fake_useragent仍显示python-requests/2.28.1
问题解决:fake_useragent生成的UA未生效,仍显示python-requests默认UA
问题出在请求头的字段名上——你写的是'user_agent',但HTTP标准的User-Agent字段名是**'User-Agent'**(大小写敏感)。requests库只会识别正确的字段名,不正确的字段会被忽略,导致请求依然使用默认的python-requests/2.28.1。
修正后的代码
from fake_useragent import UserAgent import requests from bs4 import BeautifulSoup user = UserAgent() # 修正字段名为正确的'User-Agent' header = {'User-Agent': user.random} link = "url" response = requests.get(link, headers=header).text soup = BeautifulSoup(response, 'lxml') block = soup.find('div', id='tool_padding') check_js = block.find('div', id="javascript_check") check_flash = block.find('div', id="flash_version") check_ua = block.find('div', id="user_agent").text result_js = check_js.find_all('span')[1].text result_flash = check_flash.find_all('span')[1].text print(f'js: {result_js}\nflash: {result_flash}\n{check_ua}')
额外注意事项
- 如果fake_useragent偶尔出现UA生成失败的情况,可以添加备用UA:
header = {'User-Agent': user.random or 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'} - 若仍有问题,可手动指定UA列表来生成,避免fake_useragent的网络依赖:
ua_list = [ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' ] import random header = {'User-Agent': random.choice(ua_list)}
内容的提问来源于stack exchange,提问作者Арсений Усков
相关产品推荐
相关产品推荐

