python 3 爬蟲獲取可用ip位址(小白)

2021-08-13 05:17:44 字數 2231 閱讀 2475

前幾天剛剛把正規表示式看了一些,也是只是稍微懂了一點點,所以想要寫乙個簡單的程式試一下。然後就想到了以前在找免費的**的時候有好多不能用的,所以就嘗試著寫了乙個這樣的爬蟲程式,寫的不是很好,寫的很複雜,等以後再去寫簡潔一些吧。

先直接把**弄上,然後再說一下裡面的重點內容。

import re

import urllib.request

import socket

def get_line(html):

'''將對於ip有用的內容返回,返回值是列表!'''

line_re = re.compile(r'(?:td>)(.+)(?:)')

list = line_re.findall(html)

return list

def get_ip(html):

'''得到所有的ip內容,以列表的形式返回!'''

list = get_line(html)

ip_re = re.compile(r'(?:25[0-5]\.|2[0-4]?\d\.|[01]?\d\d?\.)(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b')

ans_list =

list_len = len(list)

str = ""

for item in list:

if ip_re.match(item) != none:

str = ''

str += item

continue

if re.search('[\u4e00-\u9fa5]+',item) == none:

str += '\t' + item

return ans_list

def judge_ip(ip_list):

'''檢查ip是否可以用......'''

url = ''

f = open('e:\\python_py\output.txt', 'w')

#socket.setdefaulttimeout(3)#設定爬取網頁的時間限制,還有一種在面的open函式把timeout引數設定為3的方法

for i in range(0,len(ip_list)):

ip = ip_list[i].split('\t')

if len(ip) == 3:

try:

proxy =

proxy_support = urllib.request.proxyhandler(proxy)

opener = urllib.request.build_opener(proxy_support)

html = opener.open(url,timeout=3).read()

f.write(ip_list[i] + '\n')

except exception as e:

print ('** '+ ip[0]+' 不可用' )

continue

f.close()

if __name__ == '__main__':

url = ''

rep = urllib.request.request(url)

reponse = urllib.request.urlopen(rep)

html = reponse.read().decode('utf-8')

ip_list = get_ip(html)

judge_ip(ip_list)

用到的正規表示式內容:

ip_re = re.compile(r'(?:25[0-5]\.|2[0-4]?\d\.|[01]?\d\d?\.)(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b')

line_re = re.compile(r'(?:td>)(.+)(?:)')

re.search('[\u4e00-\u9fa5]+',item)

ip_re 表示的是匹配乙個**ip位址

第三個是匹配其中是否含有漢字資訊,我們這裡匹配的內容是ip位址,ip端號,以及ip型別,我們發現除了這三個內容之外,別的都是存在漢字的,所以我們需要把有用的資訊提取出來,這個就是這個正規表示式的作用

在後面測試表示式是否可用的裡面:

我們判斷如果連線嘗試的阻塞等待時間大於 3 秒的話,我們就認為這個ip位址有問題,所以就被異常所捕獲,繼續判斷後面的ip位址是否可用.......

然後將可以使用的ip位址寫入檔案即可

Python3爬蟲連續獲取Cookies的方法

第一次獲取cookies headers url response requests.get url cookies response.cookies.get dict print cookies 第二次獲取cookies 跳過ssl驗證證書 import ssl 設定忽略ssl驗證 宣告乙個coo...

python3爬蟲實戰(3)

今天心血來潮去爬取了一下招聘 的實時招聘資訊。是 選的條件是北京,實習生,計算機軟體。分析 之後發現還是很容易的,不過過程中出了不少小問題,在這裡分享一下。想要爬取的是類似的表單內容。是在ul的li裡。用beautifulsoup解析之後,tem ul bsoj.find ul 存下整個ul元素。對...

python3 爬蟲入門

這裡爬取貓眼電影 top100 榜的資訊,作為學習的第乙個demo。今天開始接觸的python,從爬蟲開始。語言相對來說比較簡單,環境配置到是花了不少時間。有個要注意的點是在引入beautifursoup庫的時候會報錯,因為3.x的庫需要引入的是beautifursoup4.到這一步環境配置基本上o...