Python爬虫:常用的浏览器请求头User-Agent

本文列举了多种设备和浏览器的User-Agent字符串,包括桌面浏览器、移动设备及百度蜘蛛等,为开发者进行用户代理检测提供全面参考。
user_agent = [
    "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
    "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
    "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0",
    "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko",
    "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
    "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
    "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
    "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11",
    "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11",
    "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",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)",
    "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
    "Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
    "Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
    "Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
    "MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
    "Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10",
    "Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
    "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1+",
    "Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.0; U; en-US) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.70 Safari/534.6 TouchPad/1.0",
    "Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124",
    "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)",
    "UCWEB7.0.2.37/28/999",
    "NOKIA5700/ UCWEB7.0.2.37/28/999",
    "Openwave/ UCWEB7.0.2.37/28/999",
    "Mozilla/4.0 (compatible; MSIE 6.0; ) Opera/UCWEB7.0.2.37/28/999",
    # iPhone 6:
	"Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25",

]

headers = {'User-Agent': random.choice(user_agent)}


# 随机获取一个请求头
def get_user_agent():
    return random.choice(USER_AGENTS)

百度蜘蛛

新版移动ua:

Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

PC ua:

Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

推荐:时下流行的浏览器User-Agent大全

User-agent: Baiduspider Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Baiduspider-video Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Baiduspider-news Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Googlebot Disallow: / User-agent: MSNBot Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Baiduspider-image Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: YoudaoBot Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Sogou web spider Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Sogou inst spider Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Sogou spider2 Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Sogou blog Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Sogou News Spider Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Sogou Orion spider Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: Sosospider Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: YYspider Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: ChinasoSpider Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: yisouspider Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: EasouSpider Disallow: /club/ Disallow: /f/shipin Disallow: /f/search User-agent: ToutiaoSpider Disallow: / User-agent: bingbot Disallow: / 这个是robots.txt文件 请问我应该怎么做爬虫才符合要求
07-06
### 了解 robots.txt 文件的作用与解析方法 robots.txt 文件是网站用于告知爬虫程序哪些页面可以被访问和爬取的标准文件,它遵循“机器人排除协议”(Robots Exclusion Protocol)[^2]。该文件的主要作用包括控制爬虫的访问权限、设置爬取延迟以及指定特定爬虫的行为[^1]。网站管理员可以根据需求灵活配置 robots.txt 文件,以确保合理管理和控制爬虫对网站的访问。 robots.txt 文件必须放置在网站的根目录下,并且文件名必须为小写 `robots.txt`。尽管大多数搜索引擎和合法爬虫会遵守该文件中的指令,但需要注意的是,该协议并不具有强制性,恶意爬虫可能会忽视其中的规则[^4]。 一个典型的 robots.txt 文件包含以下结构: ```txt User-agent: * Disallow: /search Disallow: /sys/ Disallow: /f/submit/ ``` 以上示例表示所有爬虫(`User-agent: *`)不允许访问 `/search`、`/sys/` 和 `/f/submit/` 路径下的内容。 --- ### 如何解析 robots.txt 文件并配置爬虫行为 要构建一个符合网站抓取规则的爬虫程序,首先需要读取并解析目标网站的 robots.txt 文件,然后根据其中的规则决定是否允许访问某个 URL。Python 提供了 `urllib.robotparser` 模块来实现这一功能,该模块可以解析 robots.txt 并判断特定路径是否允许被抓取。 以下是一个使用 `urllib.robotparser` 和 `requests` 库的示例代码: ```python from urllib.robotparser import RobotFileParser from urllib.parse import urlparse import requests def fetch_robots_txt(domain): url = f"https://{domain}/robots.txt" try: response = requests.get(url) if response.status_code == 200: return response.text else: return None except Exception as e: print(f"Error fetching robots.txt: {e}") return None def can_fetch(url, user_agent="*"): parsed_url = urlparse(url) robots_url = f"{parsed_url.scheme}://{parsed_url.netloc}/robots.txt" rp = RobotFileParser() rp.set_url(robots_url) try: rp.read() return rp.can_fetch(user_agent, url) except Exception as e: print(f"Error parsing robots.txt: {e}") return False # 示例:检查百度贴吧的某个页面是否允许抓取 target_url = "https://tieba.baidu.com/f?kw=机器学习" user_agent = "MyCrawler/1.0" if can_fetch(target_url, user_agent): print("Allowed to fetch the page.") else: print("Fetching this page is not allowed.") ``` 上述代码中,`fetch_robots_txt` 函数用于手动获取 robots.txt 文件的内容,而 `can_fetch` 函数则利用 `RobotFileParser` 来解析文件并判断特定 URL 是否允许被指定的 User-Agent 抓取。 此外,还可以通过 `rp.crawl_delay("*")` 获取爬虫应遵守的爬取延迟时间,以避免对服务器造成过大的压力。例如: ```python delay = rp.crawl_delay("*") print(f"Crawl delay for * is {delay} seconds.") ``` 如果 robots.txt 中设置了 `Crawl-delay` 指令,则爬虫应在每次请求之间添加相应的延迟,以符合网站的抓取规则。 --- ### 配置爬虫时需注意的关键点 构建一个遵守 robots.txt 规则的爬虫程序需要考虑多个方面,包括但不限于: - **正确解析 robots.txt 的规则**,尤其是 `Disallow` 和 `Allow` 指令。 - **识别 User-agent 匹配规则**,某些网站可能针对特定爬虫设置不同的限制。 - **处理通配符匹配**,如 `Disallow: /*.php$` 表示禁止抓取所有以 `.php` 结尾的页面。 - **遵守 Crawl-delay 设置**,在两次请求之间加入指定的延迟时间。 - **避免频繁访问同一网站**,防止触发反爬机制或 IP 封锁。 通过结合这些策略,可以有效降低爬虫对目标网站造成的负担,并提高数据采集的稳定性和合法性。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值