Directorio de artículos
prefacio
Este artículo presenta cómo usar la tecnología de rastreo de Python para obtener una IP de proxy y guardarla en un archivo. Mediante el uso de solicitudes de biblioteca de terceros para enviar solicitudes HTTP y el uso de la biblioteca lxml para analizar HTML, podemos obtener información de IP, puerto y dirección de varias páginas web. Este artículo analizará cada parte del código paso a paso para ayudar a los lectores a comprender mejor cómo funciona el rastreador.
Importar bibliotecas dependientes
import requests
from lxml import etree
Importe requests
la biblioteca para enviar solicitudes HTTP y lxml
la biblioteca para analizar HTML.
Abra el archivo listo para escribir datos.
with open('IP代理.txt','w',encoding='utf-8') as f:
Utilice open
la función para crear un objeto de archivo f
, especifique el nombre del archivo 'IP代理.txt'
y abra el archivo en modo de escritura. La codificación está establecida en 'utf-8'
.
Bucle para rastrear varias páginas
for i in range(1,10):
url = f'http://www.66ip.cn/{
i}.html'
print(f'正在获取{
url}')
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
}
resp = requests.get(url,headers = headers)
resp.encoding ='gbk'
e = etree.HTML(resp.text)
ips = e.xpath('//div[1]/table//tr/td[1]/text()')
ports = e.xpath('//div[1]/table//tr/td[2]/text()')
addrs = e.xpath('//div[1]/table//tr/td[3]/text()')
for i,p,a in zip(ips,ports,addrs):
f.write(f'IP地址:{
i}----port端口号:{
p}-----地址:{
a}\n')
Esta parte del código utiliza un bucle para rastrear la información del proxy de varias páginas. La variable de bucle i
va de 1 a 9. Para cada página, primero se construye la URL completa: http://www.66ip.cn/{i}.html
, donde {i}
es el número de página de la página. Luego, use print
la función para imprimir la URL de la página que se busca.
A continuación, para disfrazar su propio navegador, headers
se define un diccionario que contiene la información del agente de usuario del navegador.
Envíe una solicitud GET a través requests
de la biblioteca, utilizando headers
la información del User-Agent en el diccionario. El contenido de la respuesta obtenida se guarda en resp
la variable.
Establezca la codificación de la respuesta 'gbk'
porque el sitio web de destino utiliza la codificación GBK.
Analice el contenido de la respuesta en un objeto HTML operable y asígnelo a una variable e
, utilizando la función lxml
de la biblioteca etree.HTML
.
Extraiga una lista de direcciones IP, puertos y direcciones de un objeto HTML a través de una expresión XPath. La lista de IP se almacena en ips
, la lista de puertos se almacena en ports
y la lista de direcciones se almacena addrs
en .
Use zip
la función para empaquetar las tres listas una por una y luego use for
el bucle para recorrer los datos empaquetados. En el ciclo, use el método f
del objeto de archivo write
para escribir cada pieza de información de proxy en el archivo, y el formato de escritura es 'IP地址:{i}----port端口号:{p}-----地址:{a}\n'
.
La función de todo el código es rastrear la información de IP, puerto y dirección en varias páginas web y guardar los resultados en un 'IP代理.txt'
archivo llamado .
código completo
import requests
from lxml import etree
# 定义保存结果的文件
with open('IP代理.txt', 'w', encoding='utf-8') as f:
# 循环爬取多个页面
for i in range(1, 10):
# 构造完整的URL
url = f'http://www.66ip.cn/{
i}.html'
print(f'正在获取{
url}')
# 伪装浏览器请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
}
# 发送GET请求
resp = requests.get(url, headers=headers)
# 设置响应的编码为GBK
resp.encoding = 'gbk'
# 解析HTML
e = etree.HTML(resp.text)
# 提取IP、Port和地址信息
ips = e.xpath('//div[1]/table//tr/td[1]/text()')
ports = e.xpath('//div[1]/table//tr/td[2]/text()')
addrs = e.xpath('//div[1]/table//tr/td[3]/text()')
# 将提取的代理信息写入文件
for ip, port, addr in zip(ips, ports, addrs):
f.write(f'IP地址:{
ip}----port端口号:{
port}-----地址:{
addr}\n')
resultado de ejecución
conclusión
A través de la tecnología de rastreo de Python presentada en este artículo, puede obtener fácilmente la IP del proxy y guardarla en un archivo. Esto es muy útil para la recopilación de datos, el procesamiento anti-rastreador u otras aplicaciones de rastreadores web que necesitan usar una IP de proxy. Espero que este artículo pueda ayudarlo a comprender mejor el principio de funcionamiento de los rastreadores y desempeñar un papel en proyectos reales.