爬取西刺代理的免費IP并測驗是否可用

經(jīng)過本人的測試, 知名的網(wǎng)站基本上都會封禁西刺代理上的ip,當(dāng)然也不排除有漏網(wǎng)之魚, 如果大家要大量爬取知名網(wǎng)站的數(shù)據(jù), 建議使用其他有效的代理IP.

import re
import requests
from bs4 import BeautifulSoup
import time
import random


# 測試是否可用
# ip為傳入的ip :  0.0.0.0:8000
# test_url 為測試的目標(biāo)網(wǎng)站, 可以看作你將要爬取得網(wǎng)站
# tiem_out 請求的延遲
def test_ip(ip, test_url='https://movie.douban.com/', time_out=0.3):
    proxies = {'https': ip} # 代理
    global all # 使用全局變量
    j = 0
    while j < 3: # 一共測試3次
        try:
            # 請求目標(biāo)網(wǎng)址
            r = requests.get(test_url, proxies=proxies, timeout=time_out)
            # 如果返回的狀態(tài)碼為200, 則表示成功
            if r.status_code == 200:
                print('***************測試通過%s**************' % ip)
                all.append(ip) # 將通過的ip加入到列表中
                break
            else:
                print('請求失敗%s' % ip)
        except:
            print('請求過程錯誤%s' % ip)
        j += 1
        print('-----------------這是第  %d 次測試----------------' % j)

url = 'http://www.xicidaili.com/nn/'
# 請求頭池, 也是防止反爬手段的一種
user_list = ["Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
    "Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
    "Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
    "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
    "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
    "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
    "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3"]
# 設(shè)置全局變量, 用來存取測試通過的IP
all = []
# 一個裝爬下來IP的容器
ip_list = []
# 爬取20頁的數(shù)據(jù)
for page in range(20):
    url += str(page)
    headers = {
        # 每一次爬取選擇隨機(jī)的請求頭
        'User-Agent': random.choice(user_list)
    }
    #每一次爬取隨機(jī)暫停秒數(shù), 采用是隨機(jī)浮點數(shù)
    time.sleep(random.uniform(0, 4))
  # 解析西刺代理的頁面結(jié)構(gòu)
    res = requests.get(url, headers=headers).text
    soup = BeautifulSoup(res, 'lxml')
    ips = soup.find_all('', {'class': 'odd'})
    for ip_ in ips:
        ip = re.findall(r'<td>(.*)</td>', str(ip_))
        ip_list.append(ip[0] + ':' + ip[1])
        print(ip[0] + ':' + ip[1])

# 測試爬取得每個ip
for ip in ip_list:
    test_ip(ip)
# 打印出測試通過的ip, 當(dāng)然也可以持久化到數(shù)據(jù)庫中或者存放到本地中
print(all)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市阔拳,隨后出現(xiàn)的幾起案子导披,更是在濱河造成了極大的恐慌顽决,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勿侯,死亡現(xiàn)場離奇詭異佣盒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)窘游,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跳纳,“玉大人忍饰,你說我怎么就攤上這事“羝欤” “怎么了喘批?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長铣揉。 經(jīng)常有香客問我,道長餐曹,這世上最難降的妖魔是什么逛拱? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮台猴,結(jié)果婚禮上朽合,老公的妹妹穿的比我還像新娘。我一直安慰自己饱狂,他們只是感情好曹步,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著休讳,像睡著了一般讲婚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上俊柔,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天筹麸,我揣著相機(jī)與錄音,去河邊找鬼雏婶。 笑死物赶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的留晚。 我是一名探鬼主播酵紫,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奖地?” 一聲冷哼從身側(cè)響起橄唬,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鹉动,沒想到半個月后轧坎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡泽示,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年缸血,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片械筛。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡捎泻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出埋哟,到底是詐尸還是另有隱情笆豁,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布赤赊,位于F島的核電站闯狱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏抛计。R本人自食惡果不足惜哄孤,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吹截。 院中可真熱鬧瘦陈,春花似錦、人聲如沸波俄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懦铺。三九已至捉貌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阀趴,已是汗流浹背昏翰。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留刘急,地道東北人棚菊。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像叔汁,于是被迫代替她去往敵國和親统求。 傳聞我的和親對象是個殘疾皇子检碗,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容