1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        手把手教你使用Python網(wǎng)絡(luò)爬蟲(chóng)獲取音效信息

        共 3979字,需瀏覽 8分鐘

         ·

        2020-10-05 15:08

        點(diǎn)擊上方“Python爬蟲(chóng)與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

        回復(fù)“書(shū)籍”即可獲贈(zèng)Python從入門(mén)到進(jìn)階共10本電子書(shū)

        一腔熱血勤珍重,灑去猶能化碧濤。

        /1 前言/

            生活中到處有各種各樣的聲音。在做網(wǎng)頁(yè)時(shí),沒(méi)有聲音的網(wǎng)頁(yè)顯得沒(méi)有靈魂,特別是游戲網(wǎng)頁(yè),沒(méi)有聲音就體會(huì)不了其中精彩的打斗效果,會(huì)感到特別的無(wú)趣。


        /2 項(xiàng)目目標(biāo)/

            今天教大家如何用Python網(wǎng)絡(luò)爬蟲(chóng)去獲取音效。


        /3 項(xiàng)目準(zhǔn)備/

        軟件:PyCharm

        需要的庫(kù):requestslxml、ssl

        網(wǎng)站如下:

        https://www.tukuppt.com/yinxiaomuban/zhuanchang/__zonghe_0_0_0_0_0_0_{}.html

        /4 項(xiàng)目分析/

        1、如何找到音效地址?

        F12右鍵檢查,找到對(duì)應(yīng)的音效的地址,出現(xiàn)登錄畫(huà)面直接叉掉就可以了。


        2、如何多網(wǎng)頁(yè)訪問(wèn)?

        觀察網(wǎng)址的變化(一般取前三頁(yè)):

        https://www.tukuppt.com/yinxiaomuban/zhuanchang/__zonghe_0_0_0_0_0_0_1.html
        https://www.tukuppt.com/yinxiaomuban/zhuanchang/__zonghe_0_0_0_0_0_0_2.html
        https://www.tukuppt.com/yinxiaomuban/zhuanchang/__zonghe_0_0_0_0_0_0_3.html


        發(fā)現(xiàn)點(diǎn)擊下一頁(yè)時(shí),zonghe_0_0_0_0_0_0{}每增加一頁(yè)自增加1,用{}代替變換的變量,再用for循環(huán)遍歷這網(wǎng)址,實(shí)現(xiàn)多個(gè)網(wǎng)址請(qǐng)求。


        3、如何解除ssl驗(yàn)證?

        因?yàn)檫@個(gè)網(wǎng)址是https,需要導(dǎo)入一個(gè)ssl模塊,忽略ssl驗(yàn)證。



        4、如何獲取Cookie?

        右鍵檢查,找到NetWork,隨便復(fù)制一個(gè)Cookie即可:



        /5 項(xiàng)目實(shí)現(xiàn)/

        1、定義一個(gè)class類(lèi)繼承object,定義init方法繼承self,主函數(shù)main繼承self。導(dǎo)入需要的庫(kù)和網(wǎng)址,代碼如下所示。

        import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport ssl
        class Panda(object): def __init__(self): pass def main(self): pass
        if __name__ == '__main__': imageSpider = Panda() imageSpider.main()


        2、導(dǎo)入網(wǎng)址和構(gòu)造請(qǐng)求頭。

         self.url = "https://www.tukuppt.com/yinxiaomuban/zhuanchang/__zonghe_0_0_0_0_0_0_{}.html" #/zhuanchang/:搜索的名字的拼音縮寫(xiě)        self.headers = {            "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"        }


        3、發(fā)送請(qǐng)求  獲取響應(yīng), 頁(yè)面回調(diào),方便下次請(qǐng)求。

            def get_page(self, url):        res = requests.get(url=url, headers=self.headers)        html = res.content.decode("utf-8")        return html


        4、xpath解析頁(yè)面數(shù)據(jù)。

        這里我們先獲取父節(jié)點(diǎn),在通過(guò)for循環(huán)遍歷,找到對(duì)應(yīng)的子節(jié)點(diǎn)(音效地址)。

        one = parse_html.xpath('//div[@class="b-box"]//dl')    for li in one:        lis_imges = li.xpath(".//audio//source/@src")[0].strip()        who = li.xpath(".//dt//a/text()")[0].strip()

        ?

        獲取到后,發(fā)現(xiàn)地址表示完整的地址,需要對(duì)網(wǎng)站進(jìn)行補(bǔ)全,獲取真正訪問(wèn)的地址。

         mp3 = "https:" + lis_imges


        5、運(yùn)行的結(jié)果,如下圖所示:


        6、對(duì)音效地址發(fā)生請(qǐng)求,獲取對(duì)應(yīng)音效a標(biāo)簽的text()作為命名,寫(xiě)入文件。

        dirname = "./音效/" + who + '.mp3'html2 = requests.get(url=mp3, headers=self.headers).contentwith open(dirname, 'wb') as f:    f.write(html2)    print("\n%s下載成功" % who))


        7、調(diào)用方法,實(shí)現(xiàn)功能。

        html = self.get_page(url)self.parse_page(html)


        /6 效果展示/

        1、點(diǎn)擊綠色小三角運(yùn)行輸入起始頁(yè),終止頁(yè),如1和2,獲取1頁(yè)信息即可。


        2、運(yùn)行程序后,結(jié)果顯示在控制臺(tái),如下圖所示。


        3、將運(yùn)行結(jié)果保存在本地,如下圖所示。


        4、雙擊文件,即可播放。


        /7 小結(jié)/

        1、不建議抓取太多數(shù)據(jù),容易對(duì)服務(wù)器造成負(fù)載,淺嘗輒止即可。
        2、本文基于Python網(wǎng)絡(luò)爬蟲(chóng),利用爬蟲(chóng)庫(kù),解除登錄限制下載音效,存入文檔。
        3、按照步驟去實(shí)現(xiàn),實(shí)現(xiàn)的時(shí)候,總會(huì)有各種各樣的問(wèn)題,切勿眼高手低,勤動(dòng)手,才可以理解的更加深刻。
        4、希望通過(guò)這個(gè)項(xiàng)目能夠了解到,對(duì)于HTTPS網(wǎng)站,解除ssl驗(yàn)證的有大致的了解。
        5、如果需要本文源碼的話,請(qǐng)?jiān)诠娞?hào)后臺(tái)回復(fù)“音效”兩個(gè)字進(jìn)行獲取,覺(jué)得不錯(cuò),記得給個(gè)star噢。



        ------------------- End -------------------

        往期精彩文章推薦:

        歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

        想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

        萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行

        /今日留言主題/

        隨便說(shuō)一兩句吧~~

        瀏覽 72
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            一级a性色生活片毛片免费 | 操小骚逼操小骚逼操小骚逼 | 色偷偷网站 | 美女啊啊啊网站 | 伊人影视大香蕉 | 少妇乱淫aaa高清视频真爽 | 婷婷丁香五月综合精品 | 久久久久国产视频 | 人人做人人插 | 91新婚Aⅴ偷拍 |