在本攻略中,我们将介绍如何使用Python批量获取及验证HTTP代理。以下是一个完整攻略,包括两个示例。
步骤1:获取代理列表
首先,需要获取代理列表。我们可以使用requests库来获取代理列表,并使用正则表达式来提取代理IP和端口号。
以下是示例代码,演示如何使用Python获取代理列表:
import re
import requests
# 获取代理列表
url = 'https://www.xicidaili.com/nn/'
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'}
response = requests.get(url, headers=headers)
html = response.text
# 提取代理IP和端口号
pattern = re.compile('<td>(\d+\.\d+\.\d+\.\d+)</td>\s*<td>(\d+)</td>')
proxies = pattern.findall(html)
# 打印代理列表
print(proxies)
在上面的代码中,我们首先使用requests库获取代理列表。然后,我们使用正则表达式提取代理IP和端口号,并打印代理列表。
步骤2:验证代理可用性
接下来,我们需要验证代理可用性。我们可以使用requests库来验证代理可用性,并使用多线程来提高验证效率。
以下是示例代码,演示如何使用Python验证代理可用性:
import requests
import threading
# 验证代理可用性
def check_proxy(proxy):
url = 'http://httpbin.org/ip'
proxies = {'http': 'http://' + proxy[0] + ':' + proxy[1]}
try:
response = requests.get(url, proxies=proxies, timeout=5)
if response.status_code == 200:
print(proxy, 'is OK')
except:
pass
# 多线程验证代理可用性
threads = []
for proxy in proxies:
thread = threading.Thread(target=check_proxy, args=(proxy,))
threads.append(thread)
thread.start()
for thread in threads:
thread.join()
在上面的代码中,我们首先定义了一个check_proxy函数,用于验证代理可用性。然后,我们使用多线程来验证代理可用性,并打印可用的代理。
示例1:使用可用代理访问网站
以下是一个示例代码,演示如何使用Python使用可用代理访问网站:
import requests
# 使用可用代理访问网站
url = 'https://www.baidu.com'
proxies = {'http': 'http://代理IP:端口号'}
response = requests.get(url, proxies=proxies)
print(response.text)
在上面的代码中,我们首先定义了一个url和proxies,用于访问网站。然后,我们使用requests库访问网站,并打印网站内容。
示例2:保存可用代理到文件
以下是一个示例代码,演示如何使用Python保存可用代理到文件:
import requests
# 保存可用代理到文件
url = 'https://www.baidu.com'
proxies = {'http': 'http://代理IP:端口号'}
response = requests.get(url, proxies=proxies)
with open('proxy.txt', 'w') as f:
f.write(proxies['http'])
在上面的代码中,我们首先定义了一个url和proxies,用于访问网站。然后,我们使用requests库访问网站,并将可用代理保存到文件中。
总结
本攻略介绍了如何使用Python批量获取及验证HTTP代理。我们可以使用requests库获取代理列表,并使用正则表达式提取代理IP和端口号。提供了两个示例代码,演示如何使用可用代理访问网站和保存可用代理到文件。这些示例可以助我们好地理解如何使用Python批量获取及验证HTTP代理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:批量获取及验证HTTP代理的Python脚本 - Python技术站