python爬蟲(chóng)011-IP代理池的維護(hù)-(2)獲取模塊-代理66早直、快代理、旗云代理

最近突然有所松懈市框,突然間變得好累霞扬。早上起不來(lái),上午沒(méi)精神枫振,下午沒(méi)體力喻圃,晚上沒(méi)效率。學(xué)習(xí)的動(dòng)力似乎突然消失蒋得。我怎么了级及?
似乎是休息方面除了問(wèn)題,持續(xù)一個(gè)多月的學(xué)習(xí)额衙,沒(méi)有運(yùn)動(dòng)過(guò),更別說(shuō)出去走走怕吴,散散心窍侧。好不容易來(lái)的清明假期,也沒(méi)有出去玩转绷,我似乎失去了活力伟件、激情。記得當(dāng)年學(xué)習(xí)時(shí)除了精力不允許時(shí)议经,我總是很活躍斧账,上了大學(xué)以后不知怎么了,失去了活力煞肾,失去了激情咧织,失去了那種沖動(dòng)。很懷念那個(gè)想什么做什么的我籍救。

不說(shuō)了习绢,進(jìn)入正題。接著昨天的文蝙昙,今天寫(xiě)獲取模塊闪萄,從各大網(wǎng)站上獲取代理。
我選了代理66奇颠、快代理败去、旗云代理這三個(gè)代理網(wǎng)站,作為代理的來(lái)源烈拒。

這次我跟著書(shū)上做的圆裕,遇到了點(diǎn)問(wèn)題三椿。由于我基礎(chǔ)不太好,對(duì)與面對(duì)對(duì)象編程的掌握不到位葫辐,并不能理解抽象基類(lèi)的使用搜锰。總之先給代碼:

from pyquery import PyQuery as pq
import requests


class ProxyMetaclass(type):
    """定義一個(gè)抽象基類(lèi)耿战,來(lái)獲取以crawler_開(kāi)頭的方法"""
    def __new__(cls, name, bases, attrs):
        count = 0
        attrs['__CrawlFunc__'] = []
        for k, v in attrs.items():
            if 'crawl_' in k:
                attrs['__CrawlFunc__'].append(k)
                count +=1
        attrs['__CrawlFuncCount__'] = count
        return type.__new__(cls, name, bases, attrs)


class Crawler(object, metaclass=ProxyMetaclass):
    """從各大網(wǎng)站提取代理"""
    def get_proxies(self, callback):
        """獲取代理

        :param callback: 調(diào)用的方法名稱(chēng)
        :return: 返回得到的代理列表"""
        proxies = []
        for proxy in eval("self.{}()").format(callback):
            print('成功獲取到代理', proxy)
            proxies.append(proxy)
        return proxies

    def crawl_daili66(self, page_count=4):
        """從代理66上獲取代理

        :param page_count:頁(yè)碼
        :return: 代理"""
        start_url = 'http://www.66ip.cn/{}.html'
        urls = [start_url.format(page) for page in range(1, page_count + 1)]
        for url in urls:
            print('Crawling', url)
            html = requests.get(url)
            if html:
                doc = pq(html.text)
                trs = doc('.containerbox table tr:gt(0)').items()
                for tr in trs:
                    ip = tr.find('td:nth-child(1)').text()
                    port = tr.find('td:nth-child(2)').text()
                    yield ':'.join([ip, port])

    def crawl_kuaidaili(self,page_count=4):
        """從快代理上獲取代理

        :param page_count:頁(yè)碼
        :return: 代理"""
        start_url = 'https://www.kuaidaili.com/free/inha/{}/'
        urls = [start_url.format(page) for page in range(1, page_count + 1)]
        for url in urls:
            print('Crawling', url)
            html = requests.get(url)
            if html.status_code == 200:
                doc = pq(html.text)
                trs = doc('tbody tr')
                for tr in trs:
                    ip = tr.find('td:nth-child(1)').text()
                    port = tr.find('td:nth-child(2)').text()
                    yield ':'.join([ip, port])

    def crawl_qiyundaili(self, page_count=4):
        """從旗云代理上獲取代理

        :param page_count:頁(yè)碼
        :return: 代理"""
        start_url = 'http://www.qydaili.com/free/?action=china&page={}'
        urls = [start_url.format(page) for page in range(1, page_count + 1)]
        for url in urls:
            print('Crawling', url)
            html = requests.get(url)
            if html.status_code == 200:
                doc = pq(html.text)
                trs = doc('tbody tr').items()
                for tr in trs:
                    ip = tr.find('td:nth-child(1)').text()
                    port = tr.find('td:nth-child(2)').text()
                    yield ':'.join([ip, port])

首先我定義了一個(gè)ProxyMetaclass的元類(lèi)蛋叼,也就是抽象基類(lèi)。這是為了獲取所有以‘crawl_’開(kāi)頭的方法定義的剂陡,雖然我現(xiàn)在看不懂狈涮,但是書(shū)上這么說(shuō)的。

先過(guò)這里鸭栖,下面的三個(gè)方法就是我們獲取代理的函數(shù)歌馍。我就不講了,太簡(jiǎn)單了晕鹊。三個(gè)頁(yè)面源碼差不多松却。唯一注意的地方,就是你用的requests還是urllib溅话,這兩個(gè)源碼的烈性不一樣晓锻,一個(gè)要調(diào)用text屬性,一個(gè)要調(diào)用read()方法飞几。還有就是pyquery的使用砚哆,說(shuō)實(shí)話很好用。我覺(jué)的比beautifulsoup好使屑墨。

現(xiàn)在不知道怎么了躁锁,寫(xiě)完了這個(gè)水之又水的文,我就不想學(xué)了卵史,想睡了战转。不行啊!!!

昨天投了6份簡(jiǎn)歷,只有一份被查看了程腹。匣吊。。寸潦。然后就沒(méi)然后了色鸳。。见转。命雀。。還是學(xué)的不夠好斩箫,簡(jiǎn)歷也不夠吸引人吏砂。

我發(fā)現(xiàn)所有的書(shū)撵儿,越寫(xiě)越爛,我看書(shū)也是越來(lái)越?jīng)]動(dòng)力狐血。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末淀歇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子匈织,更是在濱河造成了極大的恐慌浪默,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缀匕,死亡現(xiàn)場(chǎng)離奇詭異纳决,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)乡小,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)阔加,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人满钟,你說(shuō)我怎么就攤上這事胜榔。” “怎么了零远?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵苗分,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我牵辣,道長(zhǎng),這世上最難降的妖魔是什么奴饮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任纬向,我火速辦了婚禮,結(jié)果婚禮上戴卜,老公的妹妹穿的比我還像新娘逾条。我一直安慰自己,他們只是感情好投剥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布师脂。 她就那樣靜靜地躺著,像睡著了一般江锨。 火紅的嫁衣襯著肌膚如雪吃警。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天啄育,我揣著相機(jī)與錄音酌心,去河邊找鬼。 笑死挑豌,一個(gè)胖子當(dāng)著我的面吹牛安券,可吹牛的內(nèi)容都是我干的墩崩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼侯勉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鹦筹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起址貌,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤铐拐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后芳誓,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體余舶,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年锹淌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匿值。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赂摆,死狀恐怖挟憔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烟号,我是刑警寧澤绊谭,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站汪拥,受9級(jí)特大地震影響达传,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜迫筑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一宪赶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脯燃,春花似錦搂妻、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至逝嚎,卻和暖如春扁瓢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背懈糯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工涤妒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赚哗。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像贿讹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茄菊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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

  • 清明時(shí)節(jié)雪紛紛面殖,路上行人欲斷魂哭廉。借問(wèn)寢室和處在,室友遙指積雪痕辽幌。 為什么要用IP代理椿访,我就不多說(shuō)了。直接進(jìn)入正題成玫。...
    DKider閱讀 854評(píng)論 0 2
  • 舉目秋林遠(yuǎn)哭当,蕭風(fēng)落葉深。 空亭無(wú)舊客,閑路有新人渗柿。 花謝寒山寄,云飛冷樹(shù)存朵栖。 黃昏歸去晚,孤影印階痕陨溅。 作者王永豪...
    王永豪閱讀 464評(píng)論 0 6
  • 伴侶間的關(guān)系最難經(jīng)營(yíng)门扇,因?yàn)閷?duì)于伴侶雹有,我們往往會(huì)自以為是地覺(jué)得對(duì)方是自己最熟悉也最了解的,也是咱們最寄予厚望的對(duì)象霸奕。...
    清米閱讀 718評(píng)論 3 2
  • Runtime 數(shù)據(jù)結(jié)構(gòu) 類(lèi)對(duì)象與元類(lèi)對(duì)象 消息傳遞 方法緩存 消息轉(zhuǎn)發(fā) Method-Swizzling 動(dòng)態(tài)添...
    TAsama閱讀 421評(píng)論 0 0
  • 開(kāi)篇 ?這篇文章的目的是講解RM Executor模塊當(dāng)中一些通用的方法质帅,這些方法在各個(gè)Executor的父類(lèi)當(dāng)中...
    晴天哥_王志閱讀 710評(píng)論 1 1