在网络爬虫的应用中,HTTP代理的使用是常见的技术手段之一。通过使用HTTP代理,爬虫可以模拟不同的访问来源,避免被目标网站识别出爬虫行为,从而提高爬虫的成功率和效率。那么,如何爬取HTTP代理呢?
1.爬取HTTP代理
我们可以使用Python中的requests和beautifulsoup库来获取并解析这些信息。具体如下:
import requests
from bs4 import BeautifulSoup
# HTTP代理网站的地址
url = 'HTTP代理网站的地址'# 请求头信息,模拟浏览器访问
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'
}
# 发送请求,获取HTML页面
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析HTML页面,获取HTTP代理信息
table = soup.find('table', {'id': 'ip_list'})
tr_list = table.find_all('tr')
for tr in tr_list[1:]:
td_list = tr.find_all('td')
ip = td_list[1].text
port = td_list[2].text
protocol = td_list[5].text.lower()
print('{}://{}:{}'.format(protocol, ip, port))
通过requests库发送请求,获取HTML页面,并使用BeautifulSoup库解析HTML页面,从而获取HTTP代理信息。解析到的HTTP代理包括IP地址、端口号和协议类型,可以根据需要进行调整和扩展。解析完成后,可以将HTTP代理存储到本地文件或数据库中,或者直接用于爬虫的访问。
2.验证HTTP代理的可用性
爬取到的HTTP代理不一定都是可用的,我们需要验证它们的可用性。我们需要验证HTTP代理是否可用。
import requests
url = "https://www.baidu.com/"
proxies = {
"http": "http://223.240.208.84:8888",
"https": "http://223.240.208.84:8888",
}
response = requests.get(url, proxies=proxies)
print(response.status_code)
如果status_code为200,说明HTTP代理可用。
3.筛选可用的HTTP代理
验证HTTP代理的可用性后,我们可以将可用的HTTP代理存储到一个列表中,以备后续使用。
值得注意的是,网上免费爬取的HTTP代理,连通性很差,这种方法基本只适合初学者用来练习自己的技术。通常而言,个人我们可以购买付费HTTP代理服务。我们只需要购买HTTP代理厂商提供的服务,就可以直接获取到高质量的HTTP代理,只要选择了适合的厂商,HTTP代理的可用性、稳定性、质量和速度等因素就能得到保证。
以下是市面上动态短效代理HTTP代理厂商的价格,主要涉及到如下几家:
- 青果网络
- 芝麻代理
- 豌豆代理
- 品易代理
- 讯代理
- 小象代理
- 巨量代理
如图所示:
HTTP代理类型 | 分类 | 代表厂商 | 白名单数 | 基础套餐 (元/月) | 平均IP单价 (元/IP) |
动态短效HTTP代理 | 按时计费 | 青果网络 | 256 | 29 | 0.0006 |
小象代理 | 5 | 109 | 0.0050 | ||
巨量代理 | 5 | 155 | 0.0049 | ||
豌豆代理 | 5 | 300 | 0.0025 | ||
讯代理 | 1 | 210 | 0.0583 | ||
品易代理 | 20 | 120 | 0.0070 | ||
芝麻代理 | 5 | 360 | 0.0182 | ||
按量计费 | 青果网络 | 256 | 30 | 0.0030 | |
豌豆代理 | 5 | 200 | 0.0200 | ||
小象代理 | 5 | 100 | 0.0100 | ||
巨量代理 | 5 | 75 | 0.0140 | ||
品易代理 | 20 | 100 | 0.0100 | ||
芝麻代理 | 5 | 420 | 0.0420 |
不过除了单价,效果才是我们想要看的,要适合我们各自的业务场景才OK,不然低出花来也没啥用。所以还是建议大家有这方面需求的还是多测试。类似我拿青果网络来测试这样:
emmm,没办法传视频,只好传个截图。
总的来说还不错,他们也提供测试服务,有需要自取。