簡體   English   中英

從txt解析IP地址

[英]Parse IP addresses from txt

我正在嘗試下載txt文件,您可以在此處找到。 下載文件不是問題:

    testfile = urllib.URLopener()
    testfile.retrieve(_proxy_list_download_, "proxies.txt")

但是問題在於,下載后它表現得很奇怪。 當我在任何txt編輯器中打開它時,都可以看到內容和IP地址,但是當我嘗試將內容打印到控制台中時,它會顯示以下內容:

212.3.183.210:8080; 0; 0; anonymous proxy; Italy; ; a;  in); an Jose); ree download proxy IP

當我嘗試從那里獲取IP地址時,輸出中沒有地址。

with open('proxies.txt') as f:
            content = f.read()
            ip = re.findall( r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$", content )

我已經嘗試了另一個正則表達式

r'([0-9]+)(?:\.[0-9]+){3}' 

正則表達式僅返回3位數字。

您知道如何解析這些IP嗎?

編輯:這是來自文本編輯器的復制粘貼文本,但是在編輯器中所有內容都在一行中:

 # http://proxy-ip-list.com/ provides you this fresh txt proxy list to free download proxy IP
# Date: Sat, 27 Jun 2015 12:53:02 +0000

39.166.95.9:8123; 0; 0; high-anonymous; China; 
178.189.92.118:3129; 16.83; 405; high-anonymous; Austria; 
198.2.202.33:8090; 8.05; 884; anonymous; United States (CA, San Jose); 
171.96.152.89:8080; 0; 0; anonymous; Thailand; 
153.149.104.76:80; 0; 0; anonymous; Japan (Tokyo); 
106.187.52.191:80; 0; 0; anonymous proxy; Japan; 
194.187.214.204:80; 0.91; 6374; anonymous proxy; Finland; 
59.78.160.247:8080; 0; 0; anonymous; China (Shanghai); 
61.156.3.166:80; 1.12; 1449; anonymous proxy; China (Jinan); 
221.238.140.164:8080; 1.39; 257; anonymous; China (Tianjin); 
117.178.157.107:8123; 8.44; 847; high-anonymous; China; 
39.166.205.95:8123; 0; 0; high-anonymous; China; 
117.163.216.8:8123; 4.21; 1577; high-anonymous; China; 
189.31.143.250:3128; 0; 0; high-anonymous; Brazil; 
183.89.84.82:8080; 0; 0; anonymous proxy; Thailand; 
183.88.41.42:8080; 0; 0; anonymous; Thailand; 
212.3.183.210:8080; 0; 0; anonymous proxy; Italy; 

您需要刪除錨點,因為一行不會僅包含一個ip地址。

ip = re.findall( r"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b", content )

第二個正則表達式

r'([0-9]+)(?:\.[0-9]+){3}' 

必須返回三位數,因為只有前三位數被捕獲,如果有re.findall方法,它將首先返回捕獲。 如果沒有捕獲,則只有它會返回匹配項。 通過將捕獲組變成非捕獲組,將為您提供所需的輸出。

r'\b[0-9]+(?:\.[0-9]+){3}\b' 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM