User-Agent 池:使用 Python 生成随机 User-Agent 防止爬虫被封禁
2023-04-17 00:00:00
User
在爬虫的过程中,经常会遇到反爬机制,其中一个常见的反爬方法就是通过检测 User-Agent 来判断请求是否是爬虫。因此,在编写爬虫时,需要设置随机的 User-Agent 来避免被封禁。
以下是使用 Python 生成随机 User-Agent 的代码示例:
import random user_agents = [ # Chrome ("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"), ("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36"), ("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36"), ("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246"), ("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36"), ("Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko"), ("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0"), # Firefox ("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"), ("Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"), ("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0"), # Opera ("Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14"), ("Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.18"), # Safari ("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2"), # Others ("Mozilla/5.0 (Windows NT 10.0; WOW64) Gecko/20100101 Firefox/47.0"), ("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"), ("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 Edge/14.14393"), ] def get_random_user_agent(): return random.choice(user_agents)
在上述代码中,我们定义了一系列常见的 User-Agent,并使用 get_random_user_agent
函数随机选取一个 User-Agent 进行使用。
如果你需要在爬取过程中使用自定义的 User-Agent,可以在函数中添加新的 User-Agent。例如,为了爬取“皮蛋编程”网站,可以添加以下的 User-Agent:
import random user_agents = [ # ... ("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36"), # ... ("Mozilla/5.0 (compatible; pidiacrawler/1.0; +https://pidancode.com)"), ("Mozilla/5.0 (compatible; PidaBot/1.0; +https://pidancode.com)"), ("Pidacrawler/1.0 (+https://pidancode.com)"), ("PidaBot/1.0 (+https://pidancode.com)"), ] def get_random_user_agent(): return random.choice(user_agents)
在上述代码中,我们添加了四个自定义的 User-Agent,分别包含了 “pidancode.com” 和 “皮蛋编程” 等字符串。
通过使用随机的 User-Agent,我们可以大大降低爬虫被封禁的概率。
相关文章