如何使用Python爬虫案例5中的X刺代理,高效管理小IP池?

2026-06-10 22:021阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计704个文字,预计阅读时间需要3分钟。

如何使用Python爬虫案例5中的X刺代理,高效管理小IP池?

学习笔记+爬取X代代理的小IP们,学完代理,我们发现网上的很多免费代理IP都用不了。所以这里写一个简单的测试小案例,爬取某个代理IP网站的免费代理IP,再逐一测试这些IP。

学习笔记


爬取X刺代理的小IP们

学完代理,我们发现网上找的很多免费代理IP都用不了,所以这里写一个简单的测试小案例,爬取一下某代理IP网站的免费代理IP,再遍历测试到底这些代理IP能不能用,哪些能用。



爬取步骤

获取要爬取的代理IP网站地址(www.xicidaili.com/nn/)

爬取页面内所有的代理IP及其端口号

测试代理IP

将可以用的代理IP存在一个csv文件里。



因为这个案例不是很复杂,所以我们就不写怎么查看网页源代码,怎么写Xpath,怎么研究URL特征这些步骤了,直接上代码



python代码

为了节省时间,我只测试了19个代理IP:

# -*- coding: utf-8 -*-

import requests
from lxml import etree
from fake_useragent import UserAgent
import time
import csv




class IpSpider:
def __init__(self):
self.url = 'www.xicidaili.com/nn/'

def get_ua(self):
return UserAgent().random

def get_page(self):
headers = {'User-Agent':self.get_ua()}
res = requests.get(self.url, headers = headers)
html = res.content.decode('utf-8')

print('url:', res.url)
print('code:', res.status_code)
#print(html)
self.get_ip_list(html)


def get_ip_list(self, html):
html_parse = etree.HTML(html)
xpath = '//table[@id="ip_list"]//tr'
r_list = html_parse.xpath(xpath)
#print(r_list)

proxy_list = []

for p in r_list[1:20]:
my_ip = p.xpath('./td[2]/text()')[0]
my_port = p.xpath('./td[3]/text()')[0]
#print('代理IP:', my_ip)
proxy_list.append(
{'{}:{}'.format(my_ip, my_port),
'{}:{}'.format(my_ip, my_port)})

self.test_ip(proxy_list)

def test_ip(self, proxy_list):

useful_proxy = []

for proxy in proxy_list:
print(proxy)
headers = {'User-Agent':self.get_ua()}

try:

res = requests.get(self.url,
headers = headers,
proxies = proxy,
timeout = 4)
#如果请求超过3秒没有相应则默认该代理不能用

except Exception as e:
print('此代理IP无法使用......')

else:
useful_proxy.append(proxy)
print(proxy)

self.write_ip(useful_proxy)

def write_ip(self, proxy_list):

with open('./test/my_test_proxy.csv', 'w', newline = '') as f:
writer = csv.writer(f)
writer.writerow(['111.231.239.143:1081', '111.231.239.143:1081'}
此代理IP无法使用......
{'115.223.64.38:8010', '115.223.64.38:8010'}
此代理IP无法使用......
执行时间:70.16



可用的代理IP



如何使用Python爬虫案例5中的X刺代理,高效管理小IP池?

我们打开存放可用代理IP的csv文件,看一下有哪些IP:

125.126.117.30:60004,125.126.117.30:60004
125.126.113.184:60004,125.126.113.184:60004
112.16.217.191:808,112.16.217.191:808

好了,这个小案例完结…


标签:

本文共计704个文字,预计阅读时间需要3分钟。

如何使用Python爬虫案例5中的X刺代理,高效管理小IP池?

学习笔记+爬取X代代理的小IP们,学完代理,我们发现网上的很多免费代理IP都用不了。所以这里写一个简单的测试小案例,爬取某个代理IP网站的免费代理IP,再逐一测试这些IP。

学习笔记


爬取X刺代理的小IP们

学完代理,我们发现网上找的很多免费代理IP都用不了,所以这里写一个简单的测试小案例,爬取一下某代理IP网站的免费代理IP,再遍历测试到底这些代理IP能不能用,哪些能用。



爬取步骤

获取要爬取的代理IP网站地址(www.xicidaili.com/nn/)

爬取页面内所有的代理IP及其端口号

测试代理IP

将可以用的代理IP存在一个csv文件里。



因为这个案例不是很复杂,所以我们就不写怎么查看网页源代码,怎么写Xpath,怎么研究URL特征这些步骤了,直接上代码



python代码

为了节省时间,我只测试了19个代理IP:

# -*- coding: utf-8 -*-

import requests
from lxml import etree
from fake_useragent import UserAgent
import time
import csv




class IpSpider:
def __init__(self):
self.url = 'www.xicidaili.com/nn/'

def get_ua(self):
return UserAgent().random

def get_page(self):
headers = {'User-Agent':self.get_ua()}
res = requests.get(self.url, headers = headers)
html = res.content.decode('utf-8')

print('url:', res.url)
print('code:', res.status_code)
#print(html)
self.get_ip_list(html)


def get_ip_list(self, html):
html_parse = etree.HTML(html)
xpath = '//table[@id="ip_list"]//tr'
r_list = html_parse.xpath(xpath)
#print(r_list)

proxy_list = []

for p in r_list[1:20]:
my_ip = p.xpath('./td[2]/text()')[0]
my_port = p.xpath('./td[3]/text()')[0]
#print('代理IP:', my_ip)
proxy_list.append(
{'{}:{}'.format(my_ip, my_port),
'{}:{}'.format(my_ip, my_port)})

self.test_ip(proxy_list)

def test_ip(self, proxy_list):

useful_proxy = []

for proxy in proxy_list:
print(proxy)
headers = {'User-Agent':self.get_ua()}

try:

res = requests.get(self.url,
headers = headers,
proxies = proxy,
timeout = 4)
#如果请求超过3秒没有相应则默认该代理不能用

except Exception as e:
print('此代理IP无法使用......')

else:
useful_proxy.append(proxy)
print(proxy)

self.write_ip(useful_proxy)

def write_ip(self, proxy_list):

with open('./test/my_test_proxy.csv', 'w', newline = '') as f:
writer = csv.writer(f)
writer.writerow(['111.231.239.143:1081', '111.231.239.143:1081'}
此代理IP无法使用......
{'115.223.64.38:8010', '115.223.64.38:8010'}
此代理IP无法使用......
执行时间:70.16



可用的代理IP



如何使用Python爬虫案例5中的X刺代理,高效管理小IP池?

我们打开存放可用代理IP的csv文件,看一下有哪些IP:

125.126.117.30:60004,125.126.117.30:60004
125.126.113.184:60004,125.126.113.184:60004
112.16.217.191:808,112.16.217.191:808

好了,这个小案例完结…


标签: