亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

python函數

python函數

從python基礎到爬蟲(chóng)的書(shū)有哪些值得推薦

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 498 次瀏覽 ? 2020-07-04 08:00 ? 來(lái)自相關(guān)話(huà)題

  于我個(gè)人而言,我很喜歡2113Python,當然我也5261有很多的理由推薦你去學(xué)python.我只4102說(shuō)兩點(diǎn).一是簡(jiǎn)單,二是寫(xiě)python工資高1653.我感覺(jué)這倆理由就夠了,對不對.買(mǎi)本書(shū),裝上pycharm,把書(shū)里面的事例習題都敲一遍.再用flask,web.py等框架搭個(gè)小網(wǎng)站.. 完美...(小伙伴們有問(wèn)到該學(xué)python2.7還是3.X,那我的答案是:目前大多數實(shí)際開(kāi)發(fā),都是用2.7的,因為實(shí)際項目開(kāi)發(fā)有很多依賴(lài)的包,都只支持到2.7,你用3.X干不了活.那你能怎樣辦.所以不需要苦惱.等3.X普及,你寫(xiě)的2.7代碼,都可以無(wú)痛移植,妥妥的不用害怕.)
  第一個(gè)
  個(gè)人覺(jué)得《Python學(xué)習手冊:第3版》是學(xué)習語(yǔ)言基礎比較好的書(shū)了.
  《Python學(xué)習手冊(第3版)》講述了:Python可移植、功能強悍、易于使用,是編撰獨立應用程序和腳本應用程序的理想選擇。無(wú)論你是剛接觸編程或則剛接觸Python,通過(guò)學(xué)習《Python學(xué)習手冊(第3版)》,你可以迅速高效地精通核心Python語(yǔ)言基礎。讀完《Python學(xué)習手冊(第3版)》,你會(huì )對這門(mén)語(yǔ)言有足夠的了解,從而可以在你所從事的任何應用領(lǐng)域中使用它。
  《Python學(xué)習手冊(第3版)》是作者依據過(guò)去10年用于教學(xué)而廣為人知的培訓課程的材料編撰而成的。除了有許多詳盡說(shuō)明和每章小結之外,每章還包括一個(gè)頭腦風(fēng)暴:這是《Python學(xué)習手冊(第3版)》獨特的一部分,配合以實(shí)用的練習題和復習題,讓讀者練習新學(xué)的方法并測試自己的理解程度。
  《Python學(xué)習手冊(第3版)》包括:
  類(lèi)型和操作——深入討論Python主要的外置對象類(lèi)型:數字、列表和字典等。
  語(yǔ)句和句型——在Python中輸入代碼來(lái)構建并處理對象,以及Python通常的句型模型。
  函數——Python基本的面向過(guò)程工具,用于組織代碼和重用。
  模塊——封裝句子、函數以及其他工具,從而可以組織成較大的組件。
  類(lèi)和OOP——Python可選的面向對象編程工具,可用于組織程序代碼因而實(shí)現訂制和重用。
  異常和工具——異常處理模型和句子,并介紹編撰更大程序的開(kāi)發(fā)工具。
  討論Python 3.0。
  《Python學(xué)習手冊(第3版)》讓你對Python語(yǔ)言有深入而完整的了解,從而幫助你理解今后碰到的任何Python應用程序實(shí)例。如果你打算探求Google和YouTube為何選中了Python,《Python學(xué)習手冊(第3版)》就是你入門(mén)的最佳手冊。
  第二個(gè)
  《Python基礎教程(第2版·修訂版)》也是精典的Python入門(mén)教程,層次鮮明,結構嚴謹,內容詳實(shí),特別是最后幾章,作者將上面述說(shuō)的內容應用到10個(gè)引人入勝的項目中,并以模板的方式介紹了項目的開(kāi)發(fā)過(guò)程,手把手院長(cháng)Python開(kāi)發(fā),讓讀者從項目中展現Python的真正魅力。這本書(shū)既適宜初學(xué)者筑牢基礎,又能幫助Python程序員提高技能,即使是Python方面的技術(shù)專(zhuān)家,也能從書(shū)里找到耳目一新的內容。
  第三個(gè)
  《“笨辦法”學(xué)Python(第3版)》是一本Python入門(mén)書(shū)籍,適合對計算機了解不多,沒(méi)有學(xué)過(guò)編程,但對編程感興趣的初學(xué)者使用。這本書(shū)結構十分簡(jiǎn)單,其中覆蓋了輸入/輸出、變量和函數三個(gè)主題,以及一些比較中級的話(huà)題,如條件判定、循環(huán)、類(lèi)和對象、代碼測試及項目的實(shí)現等。每一章的格式基本相同,以代碼習題開(kāi)始,按照說(shuō)明編撰代碼,運行并檢測結果,然后再做附加練習。這本書(shū)以習題的方法引導讀者一步一步學(xué)習編程,從簡(jiǎn)單的復印仍然講授到完整項目的實(shí)現,讓初學(xué)者從基礎的編程技術(shù)入手,最終體驗到軟件開(kāi)發(fā)的基本過(guò)程。
  【大牛評價(jià)】hardway(笨辦法)比較適宜起步編程,作為Python的入門(mén)挺不錯。
  第四個(gè)
  在這里給你們推薦最后一本《集體智慧編程》
  本書(shū)以機器學(xué)習與估算統計為主題背景,專(zhuān)門(mén)述說(shuō)怎么挖掘和剖析Web上的數據和資源,如何剖析用戶(hù)體驗、市場(chǎng)營(yíng)銷(xiāo)、個(gè)人品位等眾多信息,并得出有用的推論python爬蟲(chóng)數據書(shū)籍,通過(guò)復雜的算法來(lái)從Web網(wǎng)站獲取、收集并剖析用戶(hù)的數據和反饋信息,以便創(chuàng )造新的用戶(hù)價(jià)值和商業(yè)價(jià)值。
  全書(shū)內容詳實(shí),包括協(xié)作過(guò)濾技術(shù)(實(shí)現關(guān)聯(lián)產(chǎn)品推薦功能)、集群數據剖析(在大規模數據集中開(kāi)掘相像的數據子集)、搜索引擎核心技術(shù)(爬蟲(chóng)、索引、查詢(xún)引擎、PageRank算法等)、搜索海量信息并進(jìn)行剖析統計得出結論的優(yōu)化算法、貝葉斯過(guò)濾技術(shù)(垃圾郵件過(guò)濾、文本過(guò)濾)、用決策樹(shù)技術(shù)實(shí)現預測和決策建模功能、社交網(wǎng)絡(luò )的信息匹配技術(shù)、機器學(xué)習和人工智能應用等。
  本書(shū)是Web開(kāi)發(fā)者、架構師、應用工程師等的極佳選擇。
  “太棒了!對于初學(xué)這種算法的開(kāi)發(fā)者而言,我想不出有比這本書(shū)更好的選擇了,而對于象我這樣學(xué)過(guò)Al的道友而言,我也想不出還有什么更好的辦法才能使自己重溫這種知識的細節?!?br />   ——Dan Russell,資深技術(shù)總監,Google
  “Toby的這本書(shū)十分成功地將機器學(xué)習算法這一復雜的議程分拆成了一個(gè)個(gè)既實(shí)用又易懂的事例,我們可以直接借助那些反例來(lái)剖析當前網(wǎng)路上的社會(huì )化交互作用。假如我早三年讀過(guò)這本書(shū),就會(huì )省去許多寶貴的時(shí)間python爬蟲(chóng)數據書(shū)籍,也不至于走那么多的彎路了?!?br />   ——Tim Wolters,CTO,Collective Intellect
  第五個(gè)
  其實(shí)我認為很多人也在看《Python核心編程:第2版》.在我自己看來(lái),我并不喜歡這本書(shū).
  這本書(shū)的原書(shū)的勘誤表就有夠長(cháng)的,翻譯時(shí)卻幾乎沒(méi)有參考勘誤表,把原書(shū)的所有低級錯誤都搬進(jìn)去了。這本書(shū)的原書(shū)質(zhì)量也并不好,書(shū)的結構組織并不合理,不適宜初學(xué)者閱讀。有人說(shuō),這本書(shū)適宜進(jìn)階閱讀,我認為也不盡然。這本書(shū)好多地方都寫(xiě)的欲言又止的,看得人很郁悶。 查看全部

  于我個(gè)人而言,我很喜歡2113Python,當然我也5261有很多的理由推薦你去學(xué)python.我只4102說(shuō)兩點(diǎn).一是簡(jiǎn)單,二是寫(xiě)python工資高1653.我感覺(jué)這倆理由就夠了,對不對.買(mǎi)本書(shū),裝上pycharm,把書(shū)里面的事例習題都敲一遍.再用flask,web.py等框架搭個(gè)小網(wǎng)站.. 完美...(小伙伴們有問(wèn)到該學(xué)python2.7還是3.X,那我的答案是:目前大多數實(shí)際開(kāi)發(fā),都是用2.7的,因為實(shí)際項目開(kāi)發(fā)有很多依賴(lài)的包,都只支持到2.7,你用3.X干不了活.那你能怎樣辦.所以不需要苦惱.等3.X普及,你寫(xiě)的2.7代碼,都可以無(wú)痛移植,妥妥的不用害怕.)
  第一個(gè)
  個(gè)人覺(jué)得《Python學(xué)習手冊:第3版》是學(xué)習語(yǔ)言基礎比較好的書(shū)了.
  《Python學(xué)習手冊(第3版)》講述了:Python可移植、功能強悍、易于使用,是編撰獨立應用程序和腳本應用程序的理想選擇。無(wú)論你是剛接觸編程或則剛接觸Python,通過(guò)學(xué)習《Python學(xué)習手冊(第3版)》,你可以迅速高效地精通核心Python語(yǔ)言基礎。讀完《Python學(xué)習手冊(第3版)》,你會(huì )對這門(mén)語(yǔ)言有足夠的了解,從而可以在你所從事的任何應用領(lǐng)域中使用它。
  《Python學(xué)習手冊(第3版)》是作者依據過(guò)去10年用于教學(xué)而廣為人知的培訓課程的材料編撰而成的。除了有許多詳盡說(shuō)明和每章小結之外,每章還包括一個(gè)頭腦風(fēng)暴:這是《Python學(xué)習手冊(第3版)》獨特的一部分,配合以實(shí)用的練習題和復習題,讓讀者練習新學(xué)的方法并測試自己的理解程度。
  《Python學(xué)習手冊(第3版)》包括:
  類(lèi)型和操作——深入討論Python主要的外置對象類(lèi)型:數字、列表和字典等。
  語(yǔ)句和句型——在Python中輸入代碼來(lái)構建并處理對象,以及Python通常的句型模型。
  函數——Python基本的面向過(guò)程工具,用于組織代碼和重用。
  模塊——封裝句子、函數以及其他工具,從而可以組織成較大的組件。
  類(lèi)和OOP——Python可選的面向對象編程工具,可用于組織程序代碼因而實(shí)現訂制和重用。
  異常和工具——異常處理模型和句子,并介紹編撰更大程序的開(kāi)發(fā)工具。
  討論Python 3.0。
  《Python學(xué)習手冊(第3版)》讓你對Python語(yǔ)言有深入而完整的了解,從而幫助你理解今后碰到的任何Python應用程序實(shí)例。如果你打算探求Google和YouTube為何選中了Python,《Python學(xué)習手冊(第3版)》就是你入門(mén)的最佳手冊。
  第二個(gè)
  《Python基礎教程(第2版·修訂版)》也是精典的Python入門(mén)教程,層次鮮明,結構嚴謹,內容詳實(shí),特別是最后幾章,作者將上面述說(shuō)的內容應用到10個(gè)引人入勝的項目中,并以模板的方式介紹了項目的開(kāi)發(fā)過(guò)程,手把手院長(cháng)Python開(kāi)發(fā),讓讀者從項目中展現Python的真正魅力。這本書(shū)既適宜初學(xué)者筑牢基礎,又能幫助Python程序員提高技能,即使是Python方面的技術(shù)專(zhuān)家,也能從書(shū)里找到耳目一新的內容。
  第三個(gè)
  《“笨辦法”學(xué)Python(第3版)》是一本Python入門(mén)書(shū)籍,適合對計算機了解不多,沒(méi)有學(xué)過(guò)編程,但對編程感興趣的初學(xué)者使用。這本書(shū)結構十分簡(jiǎn)單,其中覆蓋了輸入/輸出、變量和函數三個(gè)主題,以及一些比較中級的話(huà)題,如條件判定、循環(huán)、類(lèi)和對象、代碼測試及項目的實(shí)現等。每一章的格式基本相同,以代碼習題開(kāi)始,按照說(shuō)明編撰代碼,運行并檢測結果,然后再做附加練習。這本書(shū)以習題的方法引導讀者一步一步學(xué)習編程,從簡(jiǎn)單的復印仍然講授到完整項目的實(shí)現,讓初學(xué)者從基礎的編程技術(shù)入手,最終體驗到軟件開(kāi)發(fā)的基本過(guò)程。
  【大牛評價(jià)】hardway(笨辦法)比較適宜起步編程,作為Python的入門(mén)挺不錯。
  第四個(gè)
  在這里給你們推薦最后一本《集體智慧編程》
  本書(shū)以機器學(xué)習與估算統計為主題背景,專(zhuān)門(mén)述說(shuō)怎么挖掘和剖析Web上的數據和資源,如何剖析用戶(hù)體驗、市場(chǎng)營(yíng)銷(xiāo)、個(gè)人品位等眾多信息,并得出有用的推論python爬蟲(chóng)數據書(shū)籍,通過(guò)復雜的算法來(lái)從Web網(wǎng)站獲取、收集并剖析用戶(hù)的數據和反饋信息,以便創(chuàng )造新的用戶(hù)價(jià)值和商業(yè)價(jià)值。
  全書(shū)內容詳實(shí),包括協(xié)作過(guò)濾技術(shù)(實(shí)現關(guān)聯(lián)產(chǎn)品推薦功能)、集群數據剖析(在大規模數據集中開(kāi)掘相像的數據子集)、搜索引擎核心技術(shù)(爬蟲(chóng)、索引、查詢(xún)引擎、PageRank算法等)、搜索海量信息并進(jìn)行剖析統計得出結論的優(yōu)化算法、貝葉斯過(guò)濾技術(shù)(垃圾郵件過(guò)濾、文本過(guò)濾)、用決策樹(shù)技術(shù)實(shí)現預測和決策建模功能、社交網(wǎng)絡(luò )的信息匹配技術(shù)、機器學(xué)習和人工智能應用等。
  本書(shū)是Web開(kāi)發(fā)者、架構師、應用工程師等的極佳選擇。
  “太棒了!對于初學(xué)這種算法的開(kāi)發(fā)者而言,我想不出有比這本書(shū)更好的選擇了,而對于象我這樣學(xué)過(guò)Al的道友而言,我也想不出還有什么更好的辦法才能使自己重溫這種知識的細節?!?br />   ——Dan Russell,資深技術(shù)總監,Google
  “Toby的這本書(shū)十分成功地將機器學(xué)習算法這一復雜的議程分拆成了一個(gè)個(gè)既實(shí)用又易懂的事例,我們可以直接借助那些反例來(lái)剖析當前網(wǎng)路上的社會(huì )化交互作用。假如我早三年讀過(guò)這本書(shū),就會(huì )省去許多寶貴的時(shí)間python爬蟲(chóng)數據書(shū)籍,也不至于走那么多的彎路了?!?br />   ——Tim Wolters,CTO,Collective Intellect
  第五個(gè)
  其實(shí)我認為很多人也在看《Python核心編程:第2版》.在我自己看來(lái),我并不喜歡這本書(shū).
  這本書(shū)的原書(shū)的勘誤表就有夠長(cháng)的,翻譯時(shí)卻幾乎沒(méi)有參考勘誤表,把原書(shū)的所有低級錯誤都搬進(jìn)去了。這本書(shū)的原書(shū)質(zhì)量也并不好,書(shū)的結構組織并不合理,不適宜初學(xué)者閱讀。有人說(shuō),這本書(shū)適宜進(jìn)階閱讀,我認為也不盡然。這本書(shū)好多地方都寫(xiě)的欲言又止的,看得人很郁悶。

Python 網(wǎng)絡(luò )爬蟲(chóng)實(shí)戰:爬取并下載《電影天堂》3千多部動(dòng)作片影片

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 1523 次瀏覽 ? 2020-07-03 08:00 ? 來(lái)自相關(guān)話(huà)題

  不知不覺(jué),玩爬蟲(chóng)玩了一個(gè)多月了。
  我更加認為,爬蟲(chóng)似乎并不是哪些非常深奧的技術(shù),它的價(jià)值不在于你使用了哪些非常牛的框架,用了多么了不起的技術(shù),它不需要。它只是以一種自動(dòng)化收集數據的小工具,能夠獲取到想要的數據,就是它最大的價(jià)值。
  我的爬蟲(chóng)課老師也常跟我們指出,學(xué)習爬蟲(chóng)最重要的,不是學(xué)習上面的技術(shù),因為后端技術(shù)在不斷的發(fā)展,爬蟲(chóng)的技術(shù)便會(huì )隨著(zhù)改變。學(xué)習爬蟲(chóng)最重要的是,學(xué)習它的原理,萬(wàn)變不距其宗。
  爬蟲(chóng)說(shuō)白了是為了解決須要,方便生活的。如果還能在日常生活中,想到并應用爬蟲(chóng)去解決實(shí)際的問(wèn)題,那么爬蟲(chóng)的真正意義也久發(fā)揮下來(lái)了。
  這是些閑談啦,有感而發(fā)而已。
  最近有點(diǎn)片荒,不知道該看哪些影片,而且有些影片在網(wǎng)上找很久也找不到資源。后來(lái)我了解到這個(gè)網(wǎng)站,發(fā)現近來(lái)好多不錯的影片里面都有資源(這里我就先不管它的來(lái)源正不正規啦,#掩面)。
  所以此次我們要爬取的網(wǎng)站是:《電影天堂》,屯一些影片,等無(wú)趣的時(shí)侯拿出來(lái)瞧瞧,消遣閑暇也是不錯。
  
  這次的網(wǎng)站,從爬蟲(chóng)的技術(shù)角度上來(lái)講,難度不大,而且可以說(shuō)是十分簡(jiǎn)單了。但是,它實(shí)用??!你想嘛,早上下班前跑一下爬蟲(chóng),晚上回去之后早已有幾十部最新大片在你硬碟里等著(zhù)你啦,累了三天躺床上瞧瞧影片,這種覺(jué)得是不是太爽啊。
  而且正由于這個(gè)爬蟲(chóng)比較簡(jiǎn)單,所以我會(huì )寫(xiě)的稍為細一點(diǎn),爭取使 python 小白們也能盡可能讀懂,并且還能在這個(gè)爬蟲(chóng)的基礎上更改,得到爬取這個(gè)網(wǎng)站其他藍籌股或則其他影片網(wǎng)站的爬蟲(chóng)。
  在編撰爬蟲(chóng)程序之前,我先捋一捋我們的思路。
  爬蟲(chóng)的原理,是通過(guò)給定的一個(gè)URL(就是類(lèi)似于 這樣的,俗稱(chēng)網(wǎng)址的東東) 請求,去訪(fǎng)問(wèn)一個(gè)網(wǎng)頁(yè),獲取哪個(gè)網(wǎng)頁(yè)上的源代碼(不知道源代碼的,隨便打開(kāi)一個(gè)網(wǎng)頁(yè),右鍵,查看網(wǎng)頁(yè)源代碼,出來(lái)的一大堆象亂碼一樣的東西就是網(wǎng)頁(yè)源代碼,我們須要的數據就藏在這種源代碼上面)并返回來(lái)。然后,通過(guò)一些手段(比如說(shuō)json庫,BeautifulSoup庫,正則表達式等)從網(wǎng)頁(yè)源代碼中篩選出我們想要的數據(當然,前提是我們須要剖析網(wǎng)頁(yè)結構,知道自己想要哪些數據,以及那些數據儲存在網(wǎng)頁(yè)的哪里網(wǎng)絡(luò )爬蟲(chóng)下載,存放的位置有哪些特點(diǎn)等)。最后,將我們獲取到的數據根據一定的格式,存儲到本地或則數據庫中,這樣就完成了爬蟲(chóng)的全部工作。
  當然,也有一些 「騷操作」,如果你嫌爬蟲(chóng)效率低,可以開(kāi)多線(xiàn)程(就是相當于幾十只爬蟲(chóng)同時(shí)給你爬,效率直接翻了幾十倍);如果害怕爬取頻度過(guò)低被網(wǎng)站封 IP,可以?huà)?IP 代理(相當于打幾槍換個(gè)地方,對方網(wǎng)站就不知道你到底是爬蟲(chóng)還是正常訪(fǎng)問(wèn)的用戶(hù)了);如果對方網(wǎng)站有反爬機制,那么也有一些騷操作可以繞開(kāi)反爬機制(有點(diǎn)黑客攻守的覺(jué)得,有木有?。?。這些都是后話(huà)了。
  1. 分析網(wǎng)頁(yè)的 URL 的組成結構
  首先,我們須要剖析網(wǎng)頁(yè)的 URL 的組成結構,主要關(guān)注兩方面,一是怎樣切換選擇的影片類(lèi)型,二是網(wǎng)頁(yè)怎么翻頁(yè)的。
  電影類(lèi)型
  網(wǎng)址
  劇情片
  喜劇片
  動(dòng)作片
  愛(ài)情片
  科幻片
  動(dòng)畫(huà)片
  懸疑片
  驚悚片
  恐怖片
  記錄片
  ......
  ......
  災難片
  武俠片
  古裝片
  發(fā)現規律了吧,以后假如想爬其他類(lèi)型的影片,只要改變 url 中的數字即可,甚至你可以寫(xiě)一個(gè)循環(huán),把所有藍籌股中的影片全部爬取出來(lái)。
  頁(yè)碼
  URL
  第一頁(yè)
  第二頁(yè)
  第三頁(yè)
  第四頁(yè)
  除了第一頁(yè)是 「index」外,其余頁(yè)腳均是 「index_頁(yè)碼」的方式。
  所以我們基本把握了網(wǎng)站的 url 的構成方式,這樣我們就可以通過(guò)自己構造 url 來(lái)訪(fǎng)問(wèn)任意類(lèi)型影片的任意一頁(yè)了,是不是太酷。
  2. 分析網(wǎng)站的頁(yè)面結構
  其次,我們剖析一下網(wǎng)站的頁(yè)面結構,看一看我們須要的信息都藏在網(wǎng)頁(yè)的哪些地方(在這之前我們先要明晰一下我們須要什么數據),由于我們這個(gè)目的是下載影片,所以對我有用的數據只有兩個(gè),電影名稱(chēng)和下載影片的磁力鏈接。
  按 F12 召喚出開(kāi)發(fā)者工具(這個(gè)工具可以幫助你快速定位網(wǎng)頁(yè)中的元素在 html 源代碼中位置)。
  
  然后,我們可以發(fā)覺(jué),電影列表中,每一部影片的信息儲存在一個(gè) <table> 標簽里,而影片的名子,就藏在上面的一個(gè) <a> 標簽中。電影下載的磁力鏈接在影片的詳情頁(yè)面,而影片詳情頁(yè)面的網(wǎng)址也在這個(gè)<a> 標簽中( href 屬性的值)。
  
  而下載的磁力鏈接,存放在 <tbody> 標簽下的 <a> 標簽中,是不是太好找??!
  最后我們來(lái)縷一縷思路,一會(huì )兒我們打算這樣操作:通過(guò)上面的網(wǎng)址的構造規則,訪(fǎng)問(wèn)到網(wǎng)站的某一頁(yè),然后獲取到這個(gè)頁(yè)面里的所有 table 標簽(這里儲存著(zhù)影片的數據),然后從每一個(gè) table 標簽中找到存有影片名稱(chēng)的 a 標簽(這里可以領(lǐng)到影片名稱(chēng)以及詳情頁(yè)面的網(wǎng)址),然后通過(guò)這兒獲取的網(wǎng)址訪(fǎng)問(wèn)影片的詳情頁(yè)面,在詳情頁(yè)面選購出 <tbody> 標簽下的 <a> 標簽(這里儲存著(zhù)影片的下載鏈接),這樣我們就找到了我們所須要的全部數據了,是不是很簡(jiǎn)單啊。
  爬蟲(chóng)的程序,我通常習慣把它分成五個(gè)部份, 一是主函數,作為程序的入口,二是爬蟲(chóng)調度器,三是網(wǎng)路懇求函數,四是網(wǎng)頁(yè)解析函數,五是數據儲存函數。
  
# 我們用到的庫
import requests
import bs4
import re
import pandas as pd
  1.網(wǎng)絡(luò )懇求函數 :get_data (url)
  負責訪(fǎng)問(wèn)指定的 url 網(wǎng)頁(yè),并將網(wǎng)頁(yè)的內容返回,此部份功能比較簡(jiǎn)單固定,一般不需要做更改(除非你要掛代理,或者自定義懇求頭等,可以做一些相應的調整)。
  
def get_data(url):
'''
功能:訪(fǎng)問(wèn) url 的網(wǎng)頁(yè),獲取網(wǎng)頁(yè)內容并返回
參數:
url :目標網(wǎng)頁(yè)的 url
返回:目標網(wǎng)頁(yè)的 html 內容
'''
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}

try:
r = requests.get(url, headers=headers)
r.raise_for_status()
return r.text

except requests.HTTPError as e:
print(e)
print("HTTPError")
except requests.RequestException as e:
print(e)
except:
print("Unknown Error !")
  2.網(wǎng)頁(yè)解析函數:parse_data(html)
  這個(gè)函數是整個(gè)爬蟲(chóng)程序的核心所在,整體思路在上一部分早已講過(guò)了。我這兒使用的庫是BeautifulSoup。
  這部份的寫(xiě)法多種多樣,有很多發(fā)揮的空間,也沒(méi)有哪些太多固定的模式,因為這部份的寫(xiě)法是要隨著(zhù)不同網(wǎng)站的頁(yè)面結構來(lái)做調整的,比如說(shuō)有的網(wǎng)站提供了數據的 api 接口,那么返回的數據就是 json 格式,我們只須要調用 json 庫就可以完成數據解析,而大部分的網(wǎng)站只能通過(guò)從網(wǎng)頁(yè)源代碼中一層層篩選(篩選手段也多種多樣,什么正則表達式,beautifulsoup等等)。
  這里須要依照數據的方式來(lái)選擇不同的篩選策略,所以,知道原理就可以了,習慣哪些方式就用哪些方式,反正最后能領(lǐng)到數據就好了。
  
def parse_data(html):
'''
功能:提取 html 頁(yè)面信息中的關(guān)鍵信息,并整合一個(gè)數組并返回
參數:html 根據 url 獲取到的網(wǎng)頁(yè)內容
返回:存儲有 html 中提取出的關(guān)鍵信息的數組
'''
bsobj = bs4.BeautifulSoup(html,'html.parser')
info = []

# 獲取電影列表
tbList = bsobj.find_all('table', attrs = {'class': 'tbspan'})

# 對電影列表中的每一部電影單獨處理
for item in tbList:
movie = []
link = item.b.find_all('a')[1]
# 獲取電影的名稱(chēng)
name = link["title"]
# 獲取詳情頁(yè)面的 url
url = 'https://www.dy2018.com' + link["href"]
# 將數據存放到電影信息列表里
movie.append(name)
movie.append(url)

try:
# 訪(fǎng)問(wèn)電影的詳情頁(yè)面,查找電影下載的磁力鏈接
temp = bs4.BeautifulSoup(get_data(url),'html.parser')
tbody = temp.find_all('tbody')

# 下載鏈接有多個(gè)(也可能沒(méi)有),這里將所有鏈接都放進(jìn)來(lái)
for i in tbody:
download = i.a.text
movie.append(download)

#print(movie)
# 將此電影的信息加入到電影列表中
info.append(movie)

except Exception as e:
print(e)

return info
  3. 數據儲存函數:save_data(data)
  這個(gè)函數目的是將數據儲存到本地文件或數據庫中,具體的寫(xiě)法要按照實(shí)際須要的儲存方式來(lái)定,我這兒是將數據儲存在本地的 csv 文件中。
  當然這個(gè)函數也并不只能做這些事兒,比如你可以在這里寫(xiě)一些簡(jiǎn)單的數據處理的操作,比如說(shuō):數據清洗,數據去重等操作。
  
def save_data(data):
'''
功能:將 data 中的信息輸出到文件中/或數據庫中。
參數:data 將要保存的數據
'''
filename = 'Data/電影天堂/動(dòng)作片.csv'

dataframe = pd.DataFrame(data)
dataframe.to_csv(filename, mode='a', index=False, sep=',', header=False)
  4. 爬蟲(chóng)調度器:main()
  這個(gè)函數負責按照 url 生成規則,構造新的 url 請求,然后依次調用網(wǎng)路懇求函數,網(wǎng)頁(yè)解析函數,數據儲存函數,爬取并保存該頁(yè)數據。
  所謂爬蟲(chóng)調度器,就是控制爬蟲(chóng)哪些時(shí)侯開(kāi)始爬,多少只爬蟲(chóng)一起爬,爬那個(gè)網(wǎng)頁(yè),爬多久休息一次,等等這種事兒。
  
def main():
# 循環(huán)爬取多頁(yè)數據
for page in range(1, 114):
print('正在爬?。旱? + str(page) + '頁(yè)......')
# 根據之前分析的 URL 的組成結構,構造新的 url
if page == 1:
index = 'index'
else:
index = 'index_' + str(page)
url = 'https://www.dy2018.com/2/'+ index +'.html'
# 依次調用網(wǎng)絡(luò )請求函數,網(wǎng)頁(yè)解析函數,數據存儲函數,爬取并保存該頁(yè)數據
html = get_data(url)
movies = parse_data(html)
save_data(movies)

print('第' + str(page) + '頁(yè)完成!')
  5. 主函數:程序入口
  主函數作為程序的入口,只負責啟動(dòng)爬蟲(chóng)調度器。
  這里我通常習慣在 main() 函數前后輸出一條句子,以此判定爬蟲(chóng)程序是否正常啟動(dòng)和結束。
  
if __name__ == '__main__':
print('爬蟲(chóng)啟動(dòng)成功!')
main()
print('爬蟲(chóng)執行完畢!')
  運行了兩個(gè)小時(shí)左右吧,終于爬完了 113 頁(yè),共 3346 部動(dòng)作片影片的數據(本來(lái)不止這種的,但是有一些影片沒(méi)有提供下載鏈接,我在 excel 中排序后直接自動(dòng)剔除了)。
  
  
  然后想看哪些影片的話(huà),直接復制這種影片下載的磁力鏈接,到迅雷上面下載就好啦。
  1. 在網(wǎng)站提供的下載鏈接中,我試了一下,發(fā)現magnet 開(kāi)頭的這類(lèi)鏈接置于迅雷中可以直接下載,而 ftp 開(kāi)頭的鏈接在迅雷中總顯示資源獲取失?。ㄎ也恢朗遣皇俏掖蜷_(kāi)的形式不對,反正就是下載不來(lái)),于是我對程序做了一些小的調整,使其只獲取magnet 這類(lèi)的鏈接。
  修改的方法也很簡(jiǎn)單,只須要調整 網(wǎng)頁(yè)解析函數 即可(爬蟲(chóng)的五個(gè)部份是相對獨立的,修改時(shí)只需調整相應的模塊即可,其余部份無(wú)需更改)。
  
def parse_data(html):
'''
功能:提取 html 頁(yè)面信息中的關(guān)鍵信息,并整合一個(gè)數組并返回
參數:html 根據 url 獲取到的網(wǎng)頁(yè)內容
返回:存儲有 html 中提取出的關(guān)鍵信息的數組
'''
bsobj = bs4.BeautifulSoup(html,'html.parser')
info = []

# 獲取表頭信息
tbList = bsobj.find_all('table', attrs = {'class': 'tbspan'})

for item in tbList:
movie = []
link = item.b.find_all('a')[1]
name = link["title"]
url = 'https://www.dy2018.com' + link["href"]

try:
# 查找電影下載的磁力鏈接
temp = bs4.BeautifulSoup(get_data(url),'html.parser')
tbody = temp.find_all('tbody')

for i in tbody:
download = i.a.text
if 'magnet:?xt=urn:btih' in download:
movie.append(name)
movie.append(url)
movie.append(download)
#print(movie)
info.append(movie)
break
except Exception as e:
print(e)

return info
  注意代碼 26 行處,我加了一個(gè) if 語(yǔ)句的判定,如果下載鏈接中包含magnet:?xt=urn:btih 字符串,則視為有效鏈接,下載出來(lái),否則跳過(guò)。
  2. 我仍然在想能不能有個(gè)辦法使迅雷一鍵批量下載我們爬到的影片。使用 python 操縱第三方的軟件,這或許很難的。不之后來(lái)找到了一種方式,也算是解決了這個(gè)問(wèn)題。
  就是我們發(fā)覺(jué)迅雷軟件啟動(dòng)后,會(huì )手動(dòng)檢查我們的剪切板,只要我們復制了下載鏈接,它便會(huì )手動(dòng)彈出下載的提示框。借助這個(gè)思路,我們可以使用代碼,將下載的鏈接復制步入剪切板,等下載框手動(dòng)出現后,手動(dòng)確認開(kāi)始下載(這是我目前想到的最好的辦法了,不知道諸位大鱷有沒(méi)有更好的思路,歡迎指導交流)。
  
import pyperclip
import os
import pandas as pd
imageData = pd.read_csv("Data/電影天堂/動(dòng)作片2.csv",names=['name','link','download'],encoding = 'gbk')
# 獲取電影的下載鏈接,并用換行符分隔
a_link = imageData['download']
links = '\n'.join(a_link)
# 復制到剪切板
pyperclip.copy(links);
print('已粘貼');

# 打開(kāi)迅雷
thunder_path = r'D:\Program Files (x86)\Thunder Network\Thunder9\Program\Thunder.exe'
os.startfile(thunder_path)
  親測可以實(shí)現,但是。。。不建議嘗試(你能想像迅雷打開(kāi)的一瞬間創(chuàng )建幾百個(gè)下載任務(wù)的場(chǎng)景嗎?反正我的筆記本是緩了好久好久才反應過(guò)來(lái))。大家還是老老實(shí)實(shí)的,手動(dòng)復制鏈接下載吧(csv文件可以用 excel 打開(kāi)網(wǎng)絡(luò )爬蟲(chóng)下載,豎著(zhù)選中一列,然后復制,也能達到相同的療效),這種騷操作很蠢了還是不要試了。
  啰啰嗦嗦的寫(xiě)了很多,也不知道關(guān)鍵的問(wèn)題講清楚了沒(méi)有。有那里沒(méi)講清楚,或者那里講的不合適的話(huà),歡迎恐嚇。
  其實(shí)吧,寫(xiě)文章,寫(xiě)博客,寫(xiě)教程,都是一個(gè)知識重新熔煉內化的過(guò)程,在寫(xiě)這篇博客的時(shí)侯,我也仍然在反復考量我學(xué)習爬蟲(chóng)的過(guò)程,以及我爬蟲(chóng)代碼一步步的變化,從一開(kāi)始的所有代碼全部揉在主函數中,到后來(lái)把一些變動(dòng)較少的功能提取下來(lái),寫(xiě)成單獨的函數,再到后來(lái)產(chǎn)生基本穩定的五大部份。
  以至于在我后來(lái)學(xué)習使用 scrapy 框架時(shí)侯,驚人的發(fā)覺(jué) scrapy 框架的結構跟我的爬蟲(chóng)結構有著(zhù)異曲同工之妙,我的這個(gè)相當于是一個(gè)簡(jiǎn)易版的爬蟲(chóng)框架了,純靠自己摸索達到這個(gè)療效,我覺(jué)得還是很有成就感的。 查看全部

  不知不覺(jué),玩爬蟲(chóng)玩了一個(gè)多月了。
  我更加認為,爬蟲(chóng)似乎并不是哪些非常深奧的技術(shù),它的價(jià)值不在于你使用了哪些非常牛的框架,用了多么了不起的技術(shù),它不需要。它只是以一種自動(dòng)化收集數據的小工具,能夠獲取到想要的數據,就是它最大的價(jià)值。
  我的爬蟲(chóng)課老師也常跟我們指出,學(xué)習爬蟲(chóng)最重要的,不是學(xué)習上面的技術(shù),因為后端技術(shù)在不斷的發(fā)展,爬蟲(chóng)的技術(shù)便會(huì )隨著(zhù)改變。學(xué)習爬蟲(chóng)最重要的是,學(xué)習它的原理,萬(wàn)變不距其宗。
  爬蟲(chóng)說(shuō)白了是為了解決須要,方便生活的。如果還能在日常生活中,想到并應用爬蟲(chóng)去解決實(shí)際的問(wèn)題,那么爬蟲(chóng)的真正意義也久發(fā)揮下來(lái)了。
  這是些閑談啦,有感而發(fā)而已。
  最近有點(diǎn)片荒,不知道該看哪些影片,而且有些影片在網(wǎng)上找很久也找不到資源。后來(lái)我了解到這個(gè)網(wǎng)站,發(fā)現近來(lái)好多不錯的影片里面都有資源(這里我就先不管它的來(lái)源正不正規啦,#掩面)。
  所以此次我們要爬取的網(wǎng)站是:《電影天堂》,屯一些影片,等無(wú)趣的時(shí)侯拿出來(lái)瞧瞧,消遣閑暇也是不錯。
  
  這次的網(wǎng)站,從爬蟲(chóng)的技術(shù)角度上來(lái)講,難度不大,而且可以說(shuō)是十分簡(jiǎn)單了。但是,它實(shí)用??!你想嘛,早上下班前跑一下爬蟲(chóng),晚上回去之后早已有幾十部最新大片在你硬碟里等著(zhù)你啦,累了三天躺床上瞧瞧影片,這種覺(jué)得是不是太爽啊。
  而且正由于這個(gè)爬蟲(chóng)比較簡(jiǎn)單,所以我會(huì )寫(xiě)的稍為細一點(diǎn),爭取使 python 小白們也能盡可能讀懂,并且還能在這個(gè)爬蟲(chóng)的基礎上更改,得到爬取這個(gè)網(wǎng)站其他藍籌股或則其他影片網(wǎng)站的爬蟲(chóng)。
  在編撰爬蟲(chóng)程序之前,我先捋一捋我們的思路。
  爬蟲(chóng)的原理,是通過(guò)給定的一個(gè)URL(就是類(lèi)似于 這樣的,俗稱(chēng)網(wǎng)址的東東) 請求,去訪(fǎng)問(wèn)一個(gè)網(wǎng)頁(yè),獲取哪個(gè)網(wǎng)頁(yè)上的源代碼(不知道源代碼的,隨便打開(kāi)一個(gè)網(wǎng)頁(yè),右鍵,查看網(wǎng)頁(yè)源代碼,出來(lái)的一大堆象亂碼一樣的東西就是網(wǎng)頁(yè)源代碼,我們須要的數據就藏在這種源代碼上面)并返回來(lái)。然后,通過(guò)一些手段(比如說(shuō)json庫,BeautifulSoup庫,正則表達式等)從網(wǎng)頁(yè)源代碼中篩選出我們想要的數據(當然,前提是我們須要剖析網(wǎng)頁(yè)結構,知道自己想要哪些數據,以及那些數據儲存在網(wǎng)頁(yè)的哪里網(wǎng)絡(luò )爬蟲(chóng)下載,存放的位置有哪些特點(diǎn)等)。最后,將我們獲取到的數據根據一定的格式,存儲到本地或則數據庫中,這樣就完成了爬蟲(chóng)的全部工作。
  當然,也有一些 「騷操作」,如果你嫌爬蟲(chóng)效率低,可以開(kāi)多線(xiàn)程(就是相當于幾十只爬蟲(chóng)同時(shí)給你爬,效率直接翻了幾十倍);如果害怕爬取頻度過(guò)低被網(wǎng)站封 IP,可以?huà)?IP 代理(相當于打幾槍換個(gè)地方,對方網(wǎng)站就不知道你到底是爬蟲(chóng)還是正常訪(fǎng)問(wèn)的用戶(hù)了);如果對方網(wǎng)站有反爬機制,那么也有一些騷操作可以繞開(kāi)反爬機制(有點(diǎn)黑客攻守的覺(jué)得,有木有?。?。這些都是后話(huà)了。
  1. 分析網(wǎng)頁(yè)的 URL 的組成結構
  首先,我們須要剖析網(wǎng)頁(yè)的 URL 的組成結構,主要關(guān)注兩方面,一是怎樣切換選擇的影片類(lèi)型,二是網(wǎng)頁(yè)怎么翻頁(yè)的。
  電影類(lèi)型
  網(wǎng)址
  劇情片
  喜劇片
  動(dòng)作片
  愛(ài)情片
  科幻片
  動(dòng)畫(huà)片
  懸疑片
  驚悚片
  恐怖片
  記錄片
  ......
  ......
  災難片
  武俠片
  古裝片
  發(fā)現規律了吧,以后假如想爬其他類(lèi)型的影片,只要改變 url 中的數字即可,甚至你可以寫(xiě)一個(gè)循環(huán),把所有藍籌股中的影片全部爬取出來(lái)。
  頁(yè)碼
  URL
  第一頁(yè)
  第二頁(yè)
  第三頁(yè)
  第四頁(yè)
  除了第一頁(yè)是 「index」外,其余頁(yè)腳均是 「index_頁(yè)碼」的方式。
  所以我們基本把握了網(wǎng)站的 url 的構成方式,這樣我們就可以通過(guò)自己構造 url 來(lái)訪(fǎng)問(wèn)任意類(lèi)型影片的任意一頁(yè)了,是不是太酷。
  2. 分析網(wǎng)站的頁(yè)面結構
  其次,我們剖析一下網(wǎng)站的頁(yè)面結構,看一看我們須要的信息都藏在網(wǎng)頁(yè)的哪些地方(在這之前我們先要明晰一下我們須要什么數據),由于我們這個(gè)目的是下載影片,所以對我有用的數據只有兩個(gè),電影名稱(chēng)和下載影片的磁力鏈接。
  按 F12 召喚出開(kāi)發(fā)者工具(這個(gè)工具可以幫助你快速定位網(wǎng)頁(yè)中的元素在 html 源代碼中位置)。
  
  然后,我們可以發(fā)覺(jué),電影列表中,每一部影片的信息儲存在一個(gè) <table> 標簽里,而影片的名子,就藏在上面的一個(gè) <a> 標簽中。電影下載的磁力鏈接在影片的詳情頁(yè)面,而影片詳情頁(yè)面的網(wǎng)址也在這個(gè)<a> 標簽中( href 屬性的值)。
  
  而下載的磁力鏈接,存放在 <tbody> 標簽下的 <a> 標簽中,是不是太好找??!
  最后我們來(lái)縷一縷思路,一會(huì )兒我們打算這樣操作:通過(guò)上面的網(wǎng)址的構造規則,訪(fǎng)問(wèn)到網(wǎng)站的某一頁(yè),然后獲取到這個(gè)頁(yè)面里的所有 table 標簽(這里儲存著(zhù)影片的數據),然后從每一個(gè) table 標簽中找到存有影片名稱(chēng)的 a 標簽(這里可以領(lǐng)到影片名稱(chēng)以及詳情頁(yè)面的網(wǎng)址),然后通過(guò)這兒獲取的網(wǎng)址訪(fǎng)問(wèn)影片的詳情頁(yè)面,在詳情頁(yè)面選購出 <tbody> 標簽下的 <a> 標簽(這里儲存著(zhù)影片的下載鏈接),這樣我們就找到了我們所須要的全部數據了,是不是很簡(jiǎn)單啊。
  爬蟲(chóng)的程序,我通常習慣把它分成五個(gè)部份, 一是主函數,作為程序的入口,二是爬蟲(chóng)調度器,三是網(wǎng)路懇求函數,四是網(wǎng)頁(yè)解析函數,五是數據儲存函數。
  
# 我們用到的庫
import requests
import bs4
import re
import pandas as pd
  1.網(wǎng)絡(luò )懇求函數 :get_data (url)
  負責訪(fǎng)問(wèn)指定的 url 網(wǎng)頁(yè),并將網(wǎng)頁(yè)的內容返回,此部份功能比較簡(jiǎn)單固定,一般不需要做更改(除非你要掛代理,或者自定義懇求頭等,可以做一些相應的調整)。
  
def get_data(url):
'''
功能:訪(fǎng)問(wèn) url 的網(wǎng)頁(yè),獲取網(wǎng)頁(yè)內容并返回
參數:
url :目標網(wǎng)頁(yè)的 url
返回:目標網(wǎng)頁(yè)的 html 內容
'''
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}

try:
r = requests.get(url, headers=headers)
r.raise_for_status()
return r.text

except requests.HTTPError as e:
print(e)
print("HTTPError")
except requests.RequestException as e:
print(e)
except:
print("Unknown Error !")
  2.網(wǎng)頁(yè)解析函數:parse_data(html)
  這個(gè)函數是整個(gè)爬蟲(chóng)程序的核心所在,整體思路在上一部分早已講過(guò)了。我這兒使用的庫是BeautifulSoup。
  這部份的寫(xiě)法多種多樣,有很多發(fā)揮的空間,也沒(méi)有哪些太多固定的模式,因為這部份的寫(xiě)法是要隨著(zhù)不同網(wǎng)站的頁(yè)面結構來(lái)做調整的,比如說(shuō)有的網(wǎng)站提供了數據的 api 接口,那么返回的數據就是 json 格式,我們只須要調用 json 庫就可以完成數據解析,而大部分的網(wǎng)站只能通過(guò)從網(wǎng)頁(yè)源代碼中一層層篩選(篩選手段也多種多樣,什么正則表達式,beautifulsoup等等)。
  這里須要依照數據的方式來(lái)選擇不同的篩選策略,所以,知道原理就可以了,習慣哪些方式就用哪些方式,反正最后能領(lǐng)到數據就好了。
  
def parse_data(html):
'''
功能:提取 html 頁(yè)面信息中的關(guān)鍵信息,并整合一個(gè)數組并返回
參數:html 根據 url 獲取到的網(wǎng)頁(yè)內容
返回:存儲有 html 中提取出的關(guān)鍵信息的數組
'''
bsobj = bs4.BeautifulSoup(html,'html.parser')
info = []

# 獲取電影列表
tbList = bsobj.find_all('table', attrs = {'class': 'tbspan'})

# 對電影列表中的每一部電影單獨處理
for item in tbList:
movie = []
link = item.b.find_all('a')[1]
# 獲取電影的名稱(chēng)
name = link["title"]
# 獲取詳情頁(yè)面的 url
url = 'https://www.dy2018.com' + link["href"]
# 將數據存放到電影信息列表里
movie.append(name)
movie.append(url)

try:
# 訪(fǎng)問(wèn)電影的詳情頁(yè)面,查找電影下載的磁力鏈接
temp = bs4.BeautifulSoup(get_data(url),'html.parser')
tbody = temp.find_all('tbody')

# 下載鏈接有多個(gè)(也可能沒(méi)有),這里將所有鏈接都放進(jìn)來(lái)
for i in tbody:
download = i.a.text
movie.append(download)

#print(movie)
# 將此電影的信息加入到電影列表中
info.append(movie)

except Exception as e:
print(e)

return info
  3. 數據儲存函數:save_data(data)
  這個(gè)函數目的是將數據儲存到本地文件或數據庫中,具體的寫(xiě)法要按照實(shí)際須要的儲存方式來(lái)定,我這兒是將數據儲存在本地的 csv 文件中。
  當然這個(gè)函數也并不只能做這些事兒,比如你可以在這里寫(xiě)一些簡(jiǎn)單的數據處理的操作,比如說(shuō):數據清洗,數據去重等操作。
  
def save_data(data):
'''
功能:將 data 中的信息輸出到文件中/或數據庫中。
參數:data 將要保存的數據
'''
filename = 'Data/電影天堂/動(dòng)作片.csv'

dataframe = pd.DataFrame(data)
dataframe.to_csv(filename, mode='a', index=False, sep=',', header=False)
  4. 爬蟲(chóng)調度器:main()
  這個(gè)函數負責按照 url 生成規則,構造新的 url 請求,然后依次調用網(wǎng)路懇求函數,網(wǎng)頁(yè)解析函數,數據儲存函數,爬取并保存該頁(yè)數據。
  所謂爬蟲(chóng)調度器,就是控制爬蟲(chóng)哪些時(shí)侯開(kāi)始爬,多少只爬蟲(chóng)一起爬,爬那個(gè)網(wǎng)頁(yè),爬多久休息一次,等等這種事兒。
  
def main():
# 循環(huán)爬取多頁(yè)數據
for page in range(1, 114):
print('正在爬?。旱? + str(page) + '頁(yè)......')
# 根據之前分析的 URL 的組成結構,構造新的 url
if page == 1:
index = 'index'
else:
index = 'index_' + str(page)
url = 'https://www.dy2018.com/2/'+ index +'.html'
# 依次調用網(wǎng)絡(luò )請求函數,網(wǎng)頁(yè)解析函數,數據存儲函數,爬取并保存該頁(yè)數據
html = get_data(url)
movies = parse_data(html)
save_data(movies)

print('第' + str(page) + '頁(yè)完成!')
  5. 主函數:程序入口
  主函數作為程序的入口,只負責啟動(dòng)爬蟲(chóng)調度器。
  這里我通常習慣在 main() 函數前后輸出一條句子,以此判定爬蟲(chóng)程序是否正常啟動(dòng)和結束。
  
if __name__ == '__main__':
print('爬蟲(chóng)啟動(dòng)成功!')
main()
print('爬蟲(chóng)執行完畢!')
  運行了兩個(gè)小時(shí)左右吧,終于爬完了 113 頁(yè),共 3346 部動(dòng)作片影片的數據(本來(lái)不止這種的,但是有一些影片沒(méi)有提供下載鏈接,我在 excel 中排序后直接自動(dòng)剔除了)。
  
  
  然后想看哪些影片的話(huà),直接復制這種影片下載的磁力鏈接,到迅雷上面下載就好啦。
  1. 在網(wǎng)站提供的下載鏈接中,我試了一下,發(fā)現magnet 開(kāi)頭的這類(lèi)鏈接置于迅雷中可以直接下載,而 ftp 開(kāi)頭的鏈接在迅雷中總顯示資源獲取失?。ㄎ也恢朗遣皇俏掖蜷_(kāi)的形式不對,反正就是下載不來(lái)),于是我對程序做了一些小的調整,使其只獲取magnet 這類(lèi)的鏈接。
  修改的方法也很簡(jiǎn)單,只須要調整 網(wǎng)頁(yè)解析函數 即可(爬蟲(chóng)的五個(gè)部份是相對獨立的,修改時(shí)只需調整相應的模塊即可,其余部份無(wú)需更改)。
  
def parse_data(html):
'''
功能:提取 html 頁(yè)面信息中的關(guān)鍵信息,并整合一個(gè)數組并返回
參數:html 根據 url 獲取到的網(wǎng)頁(yè)內容
返回:存儲有 html 中提取出的關(guān)鍵信息的數組
'''
bsobj = bs4.BeautifulSoup(html,'html.parser')
info = []

# 獲取表頭信息
tbList = bsobj.find_all('table', attrs = {'class': 'tbspan'})

for item in tbList:
movie = []
link = item.b.find_all('a')[1]
name = link["title"]
url = 'https://www.dy2018.com' + link["href"]

try:
# 查找電影下載的磁力鏈接
temp = bs4.BeautifulSoup(get_data(url),'html.parser')
tbody = temp.find_all('tbody')

for i in tbody:
download = i.a.text
if 'magnet:?xt=urn:btih' in download:
movie.append(name)
movie.append(url)
movie.append(download)
#print(movie)
info.append(movie)
break
except Exception as e:
print(e)

return info
  注意代碼 26 行處,我加了一個(gè) if 語(yǔ)句的判定,如果下載鏈接中包含magnet:?xt=urn:btih 字符串,則視為有效鏈接,下載出來(lái),否則跳過(guò)。
  2. 我仍然在想能不能有個(gè)辦法使迅雷一鍵批量下載我們爬到的影片。使用 python 操縱第三方的軟件,這或許很難的。不之后來(lái)找到了一種方式,也算是解決了這個(gè)問(wèn)題。
  就是我們發(fā)覺(jué)迅雷軟件啟動(dòng)后,會(huì )手動(dòng)檢查我們的剪切板,只要我們復制了下載鏈接,它便會(huì )手動(dòng)彈出下載的提示框。借助這個(gè)思路,我們可以使用代碼,將下載的鏈接復制步入剪切板,等下載框手動(dòng)出現后,手動(dòng)確認開(kāi)始下載(這是我目前想到的最好的辦法了,不知道諸位大鱷有沒(méi)有更好的思路,歡迎指導交流)。
  
import pyperclip
import os
import pandas as pd
imageData = pd.read_csv("Data/電影天堂/動(dòng)作片2.csv",names=['name','link','download'],encoding = 'gbk')
# 獲取電影的下載鏈接,并用換行符分隔
a_link = imageData['download']
links = '\n'.join(a_link)
# 復制到剪切板
pyperclip.copy(links);
print('已粘貼');

# 打開(kāi)迅雷
thunder_path = r'D:\Program Files (x86)\Thunder Network\Thunder9\Program\Thunder.exe'
os.startfile(thunder_path)
  親測可以實(shí)現,但是。。。不建議嘗試(你能想像迅雷打開(kāi)的一瞬間創(chuàng )建幾百個(gè)下載任務(wù)的場(chǎng)景嗎?反正我的筆記本是緩了好久好久才反應過(guò)來(lái))。大家還是老老實(shí)實(shí)的,手動(dòng)復制鏈接下載吧(csv文件可以用 excel 打開(kāi)網(wǎng)絡(luò )爬蟲(chóng)下載,豎著(zhù)選中一列,然后復制,也能達到相同的療效),這種騷操作很蠢了還是不要試了。
  啰啰嗦嗦的寫(xiě)了很多,也不知道關(guān)鍵的問(wèn)題講清楚了沒(méi)有。有那里沒(méi)講清楚,或者那里講的不合適的話(huà),歡迎恐嚇。
  其實(shí)吧,寫(xiě)文章,寫(xiě)博客,寫(xiě)教程,都是一個(gè)知識重新熔煉內化的過(guò)程,在寫(xiě)這篇博客的時(shí)侯,我也仍然在反復考量我學(xué)習爬蟲(chóng)的過(guò)程,以及我爬蟲(chóng)代碼一步步的變化,從一開(kāi)始的所有代碼全部揉在主函數中,到后來(lái)把一些變動(dòng)較少的功能提取下來(lái),寫(xiě)成單獨的函數,再到后來(lái)產(chǎn)生基本穩定的五大部份。
  以至于在我后來(lái)學(xué)習使用 scrapy 框架時(shí)侯,驚人的發(fā)覺(jué) scrapy 框架的結構跟我的爬蟲(chóng)結構有著(zhù)異曲同工之妙,我的這個(gè)相當于是一個(gè)簡(jiǎn)易版的爬蟲(chóng)框架了,純靠自己摸索達到這個(gè)療效,我覺(jué)得還是很有成就感的。

panfengzjz的博客

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 369 次瀏覽 ? 2020-06-04 08:04 ? 來(lái)自相關(guān)話(huà)題

  ANONYMOUSLYCN的專(zhuān)欄
  03-03
  
  9259
  python 爬取知乎某一關(guān)鍵字數據
  python爬取知乎某一關(guān)鍵字數據序言和之前爬取Instagram數據一樣,那位朋友還須要爬取知乎前面關(guān)于該影片的評論。沒(méi)想到這是個(gè)坑洞啊??雌饋?lái)很簡(jiǎn)單的一個(gè)事情就顯得很復雜了。知乎假如說(shuō),有哪些事情是最坑的,我覺(jué)得就是在知乎前面討論怎樣抓取知乎的數據了。在2018年的時(shí)侯,知乎又進(jìn)行了一次改版啊。真是一個(gè)坑洞。網(wǎng)上的代碼幾乎都不能使用了。只有這兒!的一篇文章還可以模擬登錄一......
  Someone&的博客
  05-31
  
  5069
  輸入關(guān)鍵字的爬蟲(chóng)方式(運行環(huán)境python3)
  前段時(shí)間,寫(xiě)了爬蟲(chóng),在新浪搜索主頁(yè)面中,實(shí)現了輸入關(guān)鍵詞,爬取關(guān)鍵詞相關(guān)的新聞的標題、發(fā)布時(shí)間、url、關(guān)鍵字及內容。并依據內容,提取了摘要和估算了相似度。下面簡(jiǎn)述自己的思路并將代碼的githup鏈接給出:1、獲取關(guān)鍵詞新聞頁(yè)面的url在新浪搜索主頁(yè),輸入關(guān)鍵詞,點(diǎn)擊搜索后會(huì )手動(dòng)鏈接到關(guān)鍵詞的新聞界面,想要獲取這個(gè)頁(yè)面的url,有兩種思路,本文提供三種方式。......
  樂(lè )亦亦樂(lè )的博客
  08-15
  
  2901
  python爬蟲(chóng)——?;ňW(wǎng)
  爬取?;ňW(wǎng)圖片?;ňW(wǎng)步入網(wǎng)站,我們會(huì )發(fā)覺(jué)許多圖片,這些圖片就是我們要爬取的內容。 2.對網(wǎng)頁(yè)進(jìn)行剖析,按F12打開(kāi)開(kāi)發(fā)著(zhù)工具(本文使用谷歌瀏覽器)。我們發(fā)覺(jué)每位圖片都對應著(zhù)一個(gè)路徑。 3.我們訪(fǎng)問(wèn)一下img標簽的src路徑。正是圖片的路徑,能夠獲取到圖片。因此我們須要獲取網(wǎng)頁(yè)中img標簽下所有的s......
  一朵凋謝的菊花
  03-05
  
  386
  Python定向爬蟲(chóng)——校園論壇貼子信息
  寫(xiě)這個(gè)小爬蟲(chóng)主要是為了爬校園峰會(huì )上的實(shí)習信息,主要采用了Requests庫
  weixin_34268579的博客
  12-17
  
  4301
  詳解怎樣用爬蟲(chóng)批量抓取百度搜索多個(gè)關(guān)鍵字數據
  2019獨角獸企業(yè)重金急聘Python工程師標準>>>...
  weixin_33852020的博客
  06-23
  
  313
  如何通過(guò)關(guān)鍵詞匹配統計其出現的頻度
  最近寫(xiě)的一個(gè)perl程序,通過(guò)關(guān)鍵詞匹配統計其出現的頻度,讓人感受到perl正則表達式的強悍,程序如下:#!/usr/bin/perluse strict;my (%hash,%hash1,@array);while(<>){s/\r\n//;my $line;if(/-(.+?)【(.+?)】【(.+?)】(定單積壓)/...
  W&J
  02-10
  
  9415
  python 實(shí)現關(guān)鍵詞提取
  Python實(shí)現關(guān)鍵詞提取這篇文章只介紹了Python中關(guān)鍵詞提取的實(shí)現。關(guān)鍵詞提取的幾個(gè)方式:1.textrank2.tf-idf3.LDA,其中textrank和tf-idf在jieba中都有封裝好的函數,調用上去非常簡(jiǎn)單方便。常用的自然語(yǔ)言處理的庫還有nltk,gensim,sklearn中也有封裝好的函數可以進(jìn)行SVD分解和LDA等。LDA也有人分裝好了庫,直接pipinsta......
  zzz1048506792的博客
  08-08
  
  992
  python爬蟲(chóng)爬取政府網(wǎng)站關(guān)鍵字
  **功能介紹**獲取政府招標內容包含以下關(guān)鍵詞,就提取該標書(shū)內容保存(本地文本)1,汽車(chē)采購2、汽車(chē)租賃3、公務(wù)車(chē)4、公務(wù)車(chē)租賃5、汽車(chē)合同供貨6、汽車(chē)7、租賃爬取網(wǎng)站作者:speed_zombie版本信息:python v3.7.4運行......
  最新陌陌小程序源碼
  panfengzjz的博客
  01-01
  
  442
  PYTHON 實(shí)現 NBA 賽程查詢(xún)工具(二)—— 網(wǎng)絡(luò )爬蟲(chóng)
  前言:第一篇博客,記錄一下近來(lái)的一點(diǎn)點(diǎn)小成果。一切的學(xué)習都從興趣開(kāi)始。最近突然想學(xué)習一下pyqt和python的網(wǎng)路爬蟲(chóng)知識,于是就自己找了一個(gè)課題做了上去。因為我剛好是個(gè) NBA歌迷,就想到了通過(guò)網(wǎng)路爬蟲(chóng)來(lái)抓取大賽結果,方便本地進(jìn)行查找的項目。這個(gè)項目總共分為三步:1. 界面制做:選擇對應的球員,顯示球員圖標和賽事結果2.網(wǎng)絡(luò )爬蟲(chóng):訪(fǎng)問(wèn)特定網(wǎng)頁(yè),查找賽季至......
  微信小程序源碼-合集1
  panfengzjz的博客
  05-25
  
  4475
  PYTHON 中 global 關(guān)鍵字的用法
  之前寫(xiě)函數的時(shí)侯,由于傳參實(shí)在太多,于是將某個(gè)字段定義為全局變量,在函數中直接使用??墒窃谑褂眠^(guò)程中發(fā)覺(jué)會(huì )報錯,原因是在另一個(gè)調用函數中,該全局變量的類(lèi)型被更改了,那那邊剛好徹底用幾個(gè)事例來(lái)理清一下python中g(shù)lobal關(guān)鍵字可以起到的作用。案例一:先說(shuō)我見(jiàn)到的問(wèn)題(并沒(méi)有貼上源代碼,下面的事例是自己具象出一個(gè)便捷你們理解的小case)程序大約就是這樣#error ca......
  panfengzjz的博客
  04-29
  
  1萬(wàn)+
  利用OpenCV-python進(jìn)行直線(xiàn)測量
  最近須要借助攝像頭對細小的偏斜做矯治,由于之前的界面工具是用PyQT所寫(xiě),在當前的工具中加入攝像頭矯治程序,也準備用python直接完成。OpenCV簡(jiǎn)介:Python處理圖象有OpenCV庫。OpenCV可以運行在Linux,windows,macOS上,由C函數和C++類(lèi)構成,用于實(shí)現計算機圖象、視頻的編輯,應用于圖象辨識、運動(dòng)跟蹤、機器視覺(jué)等領(lǐng)域。Open......
  bensonrachel的博客
  05-18
  
  1728
  python-簡(jiǎn)單爬蟲(chóng)及相關(guān)數據處理(統計出文章出現次數最多的50個(gè)詞)
  這次爬取了笑傲江湖這本小說(shuō);網(wǎng)站是:'#039;+str(696+i)+'.html'考慮到每一章的網(wǎng)址如上遞增,所以使用一個(gè)循環(huán)來(lái)遍歷網(wǎng)址進(jìn)行爬取。然后找出文章的標簽:如圖:是<p>,</p>所以:代碼如下:然后爬取以后,存在文檔里,進(jìn)行處理。我用的是nlpir的動(dòng)詞系統:作了處理以后,把所有詞存進(jìn)一list上面。之......
  glumpydog的專(zhuān)欄
  05-14
  
  5880
  python 抓取天涯貼子內容并保存
  手把手教你借助Python下載天涯熱門(mén)貼子為txt文檔 作者:大捷龍csdn : **剖析:天涯的貼子下載可以分為以下幾個(gè)步驟自動(dòng)傳入一個(gè)貼子首頁(yè)的地址打開(kāi)文本提取貼子標題獲取貼子的最大頁(yè)數遍歷每一頁(yè),獲得每條回復的是否是樓主、作者愛(ài)稱(chēng)、回復時(shí)間。寫(xiě)入看文本關(guān)掉文本預備:Python的文件操作: 一、...
  cjy1041403539的博客
  04-14
  
  1961
  python微博爬蟲(chóng)——使用selenium爬取關(guān)鍵詞下超話(huà)內容
  最近微博手機端的頁(yè)面發(fā)生了些微的變化,導致了我之前的兩篇文章微博任意關(guān)鍵詞爬蟲(chóng)——使用selenium模擬瀏覽器和來(lái)!用python爬一爬“不知知網(wǎng)翟博士”的微博超話(huà)中的代碼出現了一些報錯情況,這里來(lái)更改一下歡迎關(guān)注公眾號:老白和他的爬蟲(chóng)1.微博手機端出現的變化爬取手機端的微博益處在于能否爬取比網(wǎng)頁(yè)端更多的數據,因為網(wǎng)頁(yè)端微博內容通常限定在50頁(yè),數據量不夠大,所以選擇爬取手機端,這樣可......
  scx2006114的博客
  08-03
  
  5441
  python爬蟲(chóng)之爬取簡(jiǎn)書(shū)中的小文章標題
  學(xué)習了三個(gè)星期的python基礎句型,對python句型有了一個(gè)基本的了解,然后想繼續深入學(xué)習,但不喜歡每晚啃書(shū)本,太無(wú)趣了,只有實(shí)戰才是練兵的最好療效。聽(tīng)說(shuō)爬蟲(chóng)技術(shù)還是比較好玩的,就搞爬蟲(chóng),但找了很多資料沒(méi)有找到合適的資料,最后才找到傳說(shuō)中的合適爬蟲(chóng)初學(xué)者的書(shū)籍《Python3網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)實(shí)戰,崔慶才著(zhù)》(文末附書(shū)本下載鏈接),學(xué)習了一天,終于完整搞出了自己的第一爬蟲(chóng),哈哈~。......
  zhyh1435589631的專(zhuān)欄
  05-03
  
  8951
  python 爬蟲(chóng)實(shí)戰 抓取中學(xué)bbs相關(guān)藍籌股的回帖信息
  1. 前言之前也由于感興趣, 寫(xiě)過(guò)一個(gè)抓取桌面天空上面喜歡的動(dòng)畫(huà)墻紙的爬蟲(chóng)代碼。這三天忽然聽(tīng)到有人寫(xiě)了那么一篇文章: 爬取易迅本周熱銷(xiāo)商品基本信息存入MySQL 感覺(jué)挺有趣的, 正好臨近找工作的季節, 就想著(zhù)能不能寫(xiě)個(gè)爬蟲(chóng), 把俺們中學(xué)bbs前面相關(guān)的藍籌股上面的回帖信息給記錄出來(lái)。2. 項目剖析首先我們打開(kāi)我們的目標網(wǎng)頁(yè) 結...
  jiangfullll的專(zhuān)欄
  05-08
  
  1991
  python爬蟲(chóng) 根據關(guān)鍵字在新浪網(wǎng)站查詢(xún)跟關(guān)鍵字有關(guān)的新聞條數(按照時(shí)間查詢(xún))
  # -*- coding: utf-8 -*-"""Created on Thu May 8 09:14:13 2014@author: lifeix"""import urllib2import refrom datetime import datetimedef craw1(keyword_name, startYear): a = keyword_name
  c350577169的博客
  05-22
  
  3萬(wàn)+
  python爬蟲(chóng)--如何爬取翻頁(yè)url不變的網(wǎng)站
  之前準備爬取一個(gè)圖片資源網(wǎng)站,但是在翻頁(yè)時(shí)發(fā)覺(jué)它的url并沒(méi)有改變,無(wú)法簡(jiǎn)單的通過(guò)request.get()訪(fǎng)問(wèn)其他頁(yè)面。據搜索資料,了解到這種網(wǎng)站是通過(guò)ajax動(dòng)態(tài)加載技術(shù)實(shí)現。即可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對網(wǎng)頁(yè)的某部份進(jìn)行更新。這樣的設置無(wú)疑給早期爬蟲(chóng)菜鳥(niǎo)制造了一些困難。1、什么是ajax幾個(gè)常見(jiàn)的用到ajax的場(chǎng)景。比如你在逛知乎,你沒(méi)有刷新過(guò)網(wǎng)頁(yè),但是你卻能看到你關(guān)注的用戶(hù)或則話(huà)題......
  iteye_17286的博客
  11-20
  
  1071
  如何從文件中檢索關(guān)鍵字出現的次數
  首先得到文件的完整路徑,然后從流中讀取每位字符,如果讀出的字符和關(guān)鍵字的第一個(gè)字符相同,則根據關(guān)鍵字寬度讀取相同個(gè)數的字符,分別判定是否相同,若有一個(gè)不相同則break,否則計數器count++,最后count的個(gè)數即是關(guān)鍵字在文件中出下的次數......
  weixin_34237596的博客
  05-16
  
  280
  [Python爬蟲(chóng)]新聞網(wǎng)頁(yè)爬蟲(chóng)+jieba分詞+關(guān)鍵詞搜索排序
  前言近來(lái)做了一個(gè)python3作業(yè)題目,涉及到:網(wǎng)頁(yè)爬蟲(chóng)網(wǎng)頁(yè)英文文字提取構建文字索引關(guān)鍵詞搜索涉及到的庫有:爬蟲(chóng)庫:requests解析庫:xpath正則:re分詞庫:jieba...放出代碼便捷你們快速參考,實(shí)現一個(gè)小demo。題目描述搜索引擎的設計與實(shí)現輸入:騰訊體育的頁(yè)面鏈接,以列表的形式作為輸入,數量不定,例如:["
  純潔的笑容
  03-04
  
  14萬(wàn)+
  和黑客斗爭的 6 天!
  互聯(lián)網(wǎng)公司工作爬蟲(chóng)論壇,很難避開(kāi)不和黑客們打交道,我呆過(guò)的兩家互聯(lián)網(wǎng)公司,幾乎每月每晚每分鐘都有黑客在公司網(wǎng)站上掃描。有的是找尋 Sql 注入的缺口爬蟲(chóng)論壇,有的是找尋線(xiàn)上服務(wù)器可能存在的漏洞,大部分都...
  Blessy_Zhu的博客
  03-20
  
  1萬(wàn)+
  Python爬蟲(chóng)之陌陌數據爬?。ㄊ?br />   原創(chuàng )不易,轉載前請標明博主的鏈接地址:Blessy_Zhu本次代碼的環(huán)境:運行平臺:WindowsPython版本:Python3.xIDE:PyCharm一、前言陌陌作為我們日常交流的軟件,越來(lái)越深入到我們的生活。但是,隨著(zhù)陌陌好的數目的降低,實(shí)際上真正可以聯(lián)系的知心人卻越來(lái)越少了。那么,怎么樣能更清......
  07-26
  
  2萬(wàn)+
  使用網(wǎng)頁(yè)爬蟲(chóng)(高級搜索功能)搜集含關(guān)鍵詞新浪微博數據
  作為國外社交媒體的領(lǐng)航者,很遺憾,新浪微博沒(méi)有提供以“關(guān)鍵字+時(shí)間+區域”方式獲取的官方API。當我們聽(tīng)到美國科研成果都是基于某關(guān)鍵字獲得的微博,心中不免涼了一大截,或者轉戰臉書(shū)。再次建議微博能更開(kāi)放些!慶幸的是,新浪提供了中級搜索功能。找不到?這個(gè)功能須要用戶(hù)登入能夠使用……沒(méi)關(guān)系,下面將詳盡述說(shuō)怎樣在無(wú)須登陸的情況下,獲取“關(guān)鍵字+時(shí)間+區域”的新浪微博。...
  路人甲Java
  03-25
  
  9萬(wàn)+
  面試阿里p7,被按在地上磨擦,鬼曉得我經(jīng)歷了哪些?
  面試阿里p7被問(wèn)到的問(wèn)題(當時(shí)我只曉得第一個(gè)):@Conditional是做哪些的?@Conditional多個(gè)條件是哪些邏輯關(guān)系?條件判定在什么時(shí)候執... 查看全部

  ANONYMOUSLYCN的專(zhuān)欄
  03-03
  
  9259
  python 爬取知乎某一關(guān)鍵字數據
  python爬取知乎某一關(guān)鍵字數據序言和之前爬取Instagram數據一樣,那位朋友還須要爬取知乎前面關(guān)于該影片的評論。沒(méi)想到這是個(gè)坑洞啊??雌饋?lái)很簡(jiǎn)單的一個(gè)事情就顯得很復雜了。知乎假如說(shuō),有哪些事情是最坑的,我覺(jué)得就是在知乎前面討論怎樣抓取知乎的數據了。在2018年的時(shí)侯,知乎又進(jìn)行了一次改版啊。真是一個(gè)坑洞。網(wǎng)上的代碼幾乎都不能使用了。只有這兒!的一篇文章還可以模擬登錄一......
  Someone&的博客
  05-31
  
  5069
  輸入關(guān)鍵字的爬蟲(chóng)方式(運行環(huán)境python3)
  前段時(shí)間,寫(xiě)了爬蟲(chóng),在新浪搜索主頁(yè)面中,實(shí)現了輸入關(guān)鍵詞,爬取關(guān)鍵詞相關(guān)的新聞的標題、發(fā)布時(shí)間、url、關(guān)鍵字及內容。并依據內容,提取了摘要和估算了相似度。下面簡(jiǎn)述自己的思路并將代碼的githup鏈接給出:1、獲取關(guān)鍵詞新聞頁(yè)面的url在新浪搜索主頁(yè),輸入關(guān)鍵詞,點(diǎn)擊搜索后會(huì )手動(dòng)鏈接到關(guān)鍵詞的新聞界面,想要獲取這個(gè)頁(yè)面的url,有兩種思路,本文提供三種方式。......
  樂(lè )亦亦樂(lè )的博客
  08-15
  
  2901
  python爬蟲(chóng)——?;ňW(wǎng)
  爬取?;ňW(wǎng)圖片?;ňW(wǎng)步入網(wǎng)站,我們會(huì )發(fā)覺(jué)許多圖片,這些圖片就是我們要爬取的內容。 2.對網(wǎng)頁(yè)進(jìn)行剖析,按F12打開(kāi)開(kāi)發(fā)著(zhù)工具(本文使用谷歌瀏覽器)。我們發(fā)覺(jué)每位圖片都對應著(zhù)一個(gè)路徑。 3.我們訪(fǎng)問(wèn)一下img標簽的src路徑。正是圖片的路徑,能夠獲取到圖片。因此我們須要獲取網(wǎng)頁(yè)中img標簽下所有的s......
  一朵凋謝的菊花
  03-05
  
  386
  Python定向爬蟲(chóng)——校園論壇貼子信息
  寫(xiě)這個(gè)小爬蟲(chóng)主要是為了爬校園峰會(huì )上的實(shí)習信息,主要采用了Requests庫
  weixin_34268579的博客
  12-17
  
  4301
  詳解怎樣用爬蟲(chóng)批量抓取百度搜索多個(gè)關(guān)鍵字數據
  2019獨角獸企業(yè)重金急聘Python工程師標準>>>...
  weixin_33852020的博客
  06-23
  
  313
  如何通過(guò)關(guān)鍵詞匹配統計其出現的頻度
  最近寫(xiě)的一個(gè)perl程序,通過(guò)關(guān)鍵詞匹配統計其出現的頻度,讓人感受到perl正則表達式的強悍,程序如下:#!/usr/bin/perluse strict;my (%hash,%hash1,@array);while(<>){s/\r\n//;my $line;if(/-(.+?)【(.+?)】【(.+?)】(定單積壓)/...
  W&J
  02-10
  
  9415
  python 實(shí)現關(guān)鍵詞提取
  Python實(shí)現關(guān)鍵詞提取這篇文章只介紹了Python中關(guān)鍵詞提取的實(shí)現。關(guān)鍵詞提取的幾個(gè)方式:1.textrank2.tf-idf3.LDA,其中textrank和tf-idf在jieba中都有封裝好的函數,調用上去非常簡(jiǎn)單方便。常用的自然語(yǔ)言處理的庫還有nltk,gensim,sklearn中也有封裝好的函數可以進(jìn)行SVD分解和LDA等。LDA也有人分裝好了庫,直接pipinsta......
  zzz1048506792的博客
  08-08
  
  992
  python爬蟲(chóng)爬取政府網(wǎng)站關(guān)鍵字
  **功能介紹**獲取政府招標內容包含以下關(guān)鍵詞,就提取該標書(shū)內容保存(本地文本)1,汽車(chē)采購2、汽車(chē)租賃3、公務(wù)車(chē)4、公務(wù)車(chē)租賃5、汽車(chē)合同供貨6、汽車(chē)7、租賃爬取網(wǎng)站作者:speed_zombie版本信息:python v3.7.4運行......
  最新陌陌小程序源碼
  panfengzjz的博客
  01-01
  
  442
  PYTHON 實(shí)現 NBA 賽程查詢(xún)工具(二)—— 網(wǎng)絡(luò )爬蟲(chóng)
  前言:第一篇博客,記錄一下近來(lái)的一點(diǎn)點(diǎn)小成果。一切的學(xué)習都從興趣開(kāi)始。最近突然想學(xué)習一下pyqt和python的網(wǎng)路爬蟲(chóng)知識,于是就自己找了一個(gè)課題做了上去。因為我剛好是個(gè) NBA歌迷,就想到了通過(guò)網(wǎng)路爬蟲(chóng)來(lái)抓取大賽結果,方便本地進(jìn)行查找的項目。這個(gè)項目總共分為三步:1. 界面制做:選擇對應的球員,顯示球員圖標和賽事結果2.網(wǎng)絡(luò )爬蟲(chóng):訪(fǎng)問(wèn)特定網(wǎng)頁(yè),查找賽季至......
  微信小程序源碼-合集1
  panfengzjz的博客
  05-25
  
  4475
  PYTHON 中 global 關(guān)鍵字的用法
  之前寫(xiě)函數的時(shí)侯,由于傳參實(shí)在太多,于是將某個(gè)字段定義為全局變量,在函數中直接使用??墒窃谑褂眠^(guò)程中發(fā)覺(jué)會(huì )報錯,原因是在另一個(gè)調用函數中,該全局變量的類(lèi)型被更改了,那那邊剛好徹底用幾個(gè)事例來(lái)理清一下python中g(shù)lobal關(guān)鍵字可以起到的作用。案例一:先說(shuō)我見(jiàn)到的問(wèn)題(并沒(méi)有貼上源代碼,下面的事例是自己具象出一個(gè)便捷你們理解的小case)程序大約就是這樣#error ca......
  panfengzjz的博客
  04-29
  
  1萬(wàn)+
  利用OpenCV-python進(jìn)行直線(xiàn)測量
  最近須要借助攝像頭對細小的偏斜做矯治,由于之前的界面工具是用PyQT所寫(xiě),在當前的工具中加入攝像頭矯治程序,也準備用python直接完成。OpenCV簡(jiǎn)介:Python處理圖象有OpenCV庫。OpenCV可以運行在Linux,windows,macOS上,由C函數和C++類(lèi)構成,用于實(shí)現計算機圖象、視頻的編輯,應用于圖象辨識、運動(dòng)跟蹤、機器視覺(jué)等領(lǐng)域。Open......
  bensonrachel的博客
  05-18
  
  1728
  python-簡(jiǎn)單爬蟲(chóng)及相關(guān)數據處理(統計出文章出現次數最多的50個(gè)詞)
  這次爬取了笑傲江湖這本小說(shuō);網(wǎng)站是:'#039;+str(696+i)+'.html'考慮到每一章的網(wǎng)址如上遞增,所以使用一個(gè)循環(huán)來(lái)遍歷網(wǎng)址進(jìn)行爬取。然后找出文章的標簽:如圖:是<p>,</p>所以:代碼如下:然后爬取以后,存在文檔里,進(jìn)行處理。我用的是nlpir的動(dòng)詞系統:作了處理以后,把所有詞存進(jìn)一list上面。之......
  glumpydog的專(zhuān)欄
  05-14
  
  5880
  python 抓取天涯貼子內容并保存
  手把手教你借助Python下載天涯熱門(mén)貼子為txt文檔 作者:大捷龍csdn : **剖析:天涯的貼子下載可以分為以下幾個(gè)步驟自動(dòng)傳入一個(gè)貼子首頁(yè)的地址打開(kāi)文本提取貼子標題獲取貼子的最大頁(yè)數遍歷每一頁(yè),獲得每條回復的是否是樓主、作者愛(ài)稱(chēng)、回復時(shí)間。寫(xiě)入看文本關(guān)掉文本預備:Python的文件操作: 一、...
  cjy1041403539的博客
  04-14
  
  1961
  python微博爬蟲(chóng)——使用selenium爬取關(guān)鍵詞下超話(huà)內容
  最近微博手機端的頁(yè)面發(fā)生了些微的變化,導致了我之前的兩篇文章微博任意關(guān)鍵詞爬蟲(chóng)——使用selenium模擬瀏覽器和來(lái)!用python爬一爬“不知知網(wǎng)翟博士”的微博超話(huà)中的代碼出現了一些報錯情況,這里來(lái)更改一下歡迎關(guān)注公眾號:老白和他的爬蟲(chóng)1.微博手機端出現的變化爬取手機端的微博益處在于能否爬取比網(wǎng)頁(yè)端更多的數據,因為網(wǎng)頁(yè)端微博內容通常限定在50頁(yè),數據量不夠大,所以選擇爬取手機端,這樣可......
  scx2006114的博客
  08-03
  
  5441
  python爬蟲(chóng)之爬取簡(jiǎn)書(shū)中的小文章標題
  學(xué)習了三個(gè)星期的python基礎句型,對python句型有了一個(gè)基本的了解,然后想繼續深入學(xué)習,但不喜歡每晚啃書(shū)本,太無(wú)趣了,只有實(shí)戰才是練兵的最好療效。聽(tīng)說(shuō)爬蟲(chóng)技術(shù)還是比較好玩的,就搞爬蟲(chóng),但找了很多資料沒(méi)有找到合適的資料,最后才找到傳說(shuō)中的合適爬蟲(chóng)初學(xué)者的書(shū)籍《Python3網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)實(shí)戰,崔慶才著(zhù)》(文末附書(shū)本下載鏈接),學(xué)習了一天,終于完整搞出了自己的第一爬蟲(chóng),哈哈~。......
  zhyh1435589631的專(zhuān)欄
  05-03
  
  8951
  python 爬蟲(chóng)實(shí)戰 抓取中學(xué)bbs相關(guān)藍籌股的回帖信息
  1. 前言之前也由于感興趣, 寫(xiě)過(guò)一個(gè)抓取桌面天空上面喜歡的動(dòng)畫(huà)墻紙的爬蟲(chóng)代碼。這三天忽然聽(tīng)到有人寫(xiě)了那么一篇文章: 爬取易迅本周熱銷(xiāo)商品基本信息存入MySQL 感覺(jué)挺有趣的, 正好臨近找工作的季節, 就想著(zhù)能不能寫(xiě)個(gè)爬蟲(chóng), 把俺們中學(xué)bbs前面相關(guān)的藍籌股上面的回帖信息給記錄出來(lái)。2. 項目剖析首先我們打開(kāi)我們的目標網(wǎng)頁(yè) 結...
  jiangfullll的專(zhuān)欄
  05-08
  
  1991
  python爬蟲(chóng) 根據關(guān)鍵字在新浪網(wǎng)站查詢(xún)跟關(guān)鍵字有關(guān)的新聞條數(按照時(shí)間查詢(xún))
  # -*- coding: utf-8 -*-"""Created on Thu May 8 09:14:13 2014@author: lifeix"""import urllib2import refrom datetime import datetimedef craw1(keyword_name, startYear): a = keyword_name
  c350577169的博客
  05-22
  
  3萬(wàn)+
  python爬蟲(chóng)--如何爬取翻頁(yè)url不變的網(wǎng)站
  之前準備爬取一個(gè)圖片資源網(wǎng)站,但是在翻頁(yè)時(shí)發(fā)覺(jué)它的url并沒(méi)有改變,無(wú)法簡(jiǎn)單的通過(guò)request.get()訪(fǎng)問(wèn)其他頁(yè)面。據搜索資料,了解到這種網(wǎng)站是通過(guò)ajax動(dòng)態(tài)加載技術(shù)實(shí)現。即可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對網(wǎng)頁(yè)的某部份進(jìn)行更新。這樣的設置無(wú)疑給早期爬蟲(chóng)菜鳥(niǎo)制造了一些困難。1、什么是ajax幾個(gè)常見(jiàn)的用到ajax的場(chǎng)景。比如你在逛知乎,你沒(méi)有刷新過(guò)網(wǎng)頁(yè),但是你卻能看到你關(guān)注的用戶(hù)或則話(huà)題......
  iteye_17286的博客
  11-20
  
  1071
  如何從文件中檢索關(guān)鍵字出現的次數
  首先得到文件的完整路徑,然后從流中讀取每位字符,如果讀出的字符和關(guān)鍵字的第一個(gè)字符相同,則根據關(guān)鍵字寬度讀取相同個(gè)數的字符,分別判定是否相同,若有一個(gè)不相同則break,否則計數器count++,最后count的個(gè)數即是關(guān)鍵字在文件中出下的次數......
  weixin_34237596的博客
  05-16
  
  280
  [Python爬蟲(chóng)]新聞網(wǎng)頁(yè)爬蟲(chóng)+jieba分詞+關(guān)鍵詞搜索排序
  前言近來(lái)做了一個(gè)python3作業(yè)題目,涉及到:網(wǎng)頁(yè)爬蟲(chóng)網(wǎng)頁(yè)英文文字提取構建文字索引關(guān)鍵詞搜索涉及到的庫有:爬蟲(chóng)庫:requests解析庫:xpath正則:re分詞庫:jieba...放出代碼便捷你們快速參考,實(shí)現一個(gè)小demo。題目描述搜索引擎的設計與實(shí)現輸入:騰訊體育的頁(yè)面鏈接,以列表的形式作為輸入,數量不定,例如:["
  純潔的笑容
  03-04
  
  14萬(wàn)+
  和黑客斗爭的 6 天!
  互聯(lián)網(wǎng)公司工作爬蟲(chóng)論壇,很難避開(kāi)不和黑客們打交道,我呆過(guò)的兩家互聯(lián)網(wǎng)公司,幾乎每月每晚每分鐘都有黑客在公司網(wǎng)站上掃描。有的是找尋 Sql 注入的缺口爬蟲(chóng)論壇,有的是找尋線(xiàn)上服務(wù)器可能存在的漏洞,大部分都...
  Blessy_Zhu的博客
  03-20
  
  1萬(wàn)+
  Python爬蟲(chóng)之陌陌數據爬?。ㄊ?br />   原創(chuàng )不易,轉載前請標明博主的鏈接地址:Blessy_Zhu本次代碼的環(huán)境:運行平臺:WindowsPython版本:Python3.xIDE:PyCharm一、前言陌陌作為我們日常交流的軟件,越來(lái)越深入到我們的生活。但是,隨著(zhù)陌陌好的數目的降低,實(shí)際上真正可以聯(lián)系的知心人卻越來(lái)越少了。那么,怎么樣能更清......
  07-26
  
  2萬(wàn)+
  使用網(wǎng)頁(yè)爬蟲(chóng)(高級搜索功能)搜集含關(guān)鍵詞新浪微博數據
  作為國外社交媒體的領(lǐng)航者,很遺憾,新浪微博沒(méi)有提供以“關(guān)鍵字+時(shí)間+區域”方式獲取的官方API。當我們聽(tīng)到美國科研成果都是基于某關(guān)鍵字獲得的微博,心中不免涼了一大截,或者轉戰臉書(shū)。再次建議微博能更開(kāi)放些!慶幸的是,新浪提供了中級搜索功能。找不到?這個(gè)功能須要用戶(hù)登入能夠使用……沒(méi)關(guān)系,下面將詳盡述說(shuō)怎樣在無(wú)須登陸的情況下,獲取“關(guān)鍵字+時(shí)間+區域”的新浪微博。...
  路人甲Java
  03-25
  
  9萬(wàn)+
  面試阿里p7,被按在地上磨擦,鬼曉得我經(jīng)歷了哪些?
  面試阿里p7被問(wèn)到的問(wèn)題(當時(shí)我只曉得第一個(gè)):@Conditional是做哪些的?@Conditional多個(gè)條件是哪些邏輯關(guān)系?條件判定在什么時(shí)候執...

從python基礎到爬蟲(chóng)的書(shū)有哪些值得推薦

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 498 次瀏覽 ? 2020-07-04 08:00 ? 來(lái)自相關(guān)話(huà)題

  于我個(gè)人而言,我很喜歡2113Python,當然我也5261有很多的理由推薦你去學(xué)python.我只4102說(shuō)兩點(diǎn).一是簡(jiǎn)單,二是寫(xiě)python工資高1653.我感覺(jué)這倆理由就夠了,對不對.買(mǎi)本書(shū),裝上pycharm,把書(shū)里面的事例習題都敲一遍.再用flask,web.py等框架搭個(gè)小網(wǎng)站.. 完美...(小伙伴們有問(wèn)到該學(xué)python2.7還是3.X,那我的答案是:目前大多數實(shí)際開(kāi)發(fā),都是用2.7的,因為實(shí)際項目開(kāi)發(fā)有很多依賴(lài)的包,都只支持到2.7,你用3.X干不了活.那你能怎樣辦.所以不需要苦惱.等3.X普及,你寫(xiě)的2.7代碼,都可以無(wú)痛移植,妥妥的不用害怕.)
  第一個(gè)
  個(gè)人覺(jué)得《Python學(xué)習手冊:第3版》是學(xué)習語(yǔ)言基礎比較好的書(shū)了.
  《Python學(xué)習手冊(第3版)》講述了:Python可移植、功能強悍、易于使用,是編撰獨立應用程序和腳本應用程序的理想選擇。無(wú)論你是剛接觸編程或則剛接觸Python,通過(guò)學(xué)習《Python學(xué)習手冊(第3版)》,你可以迅速高效地精通核心Python語(yǔ)言基礎。讀完《Python學(xué)習手冊(第3版)》,你會(huì )對這門(mén)語(yǔ)言有足夠的了解,從而可以在你所從事的任何應用領(lǐng)域中使用它。
  《Python學(xué)習手冊(第3版)》是作者依據過(guò)去10年用于教學(xué)而廣為人知的培訓課程的材料編撰而成的。除了有許多詳盡說(shuō)明和每章小結之外,每章還包括一個(gè)頭腦風(fēng)暴:這是《Python學(xué)習手冊(第3版)》獨特的一部分,配合以實(shí)用的練習題和復習題,讓讀者練習新學(xué)的方法并測試自己的理解程度。
  《Python學(xué)習手冊(第3版)》包括:
  類(lèi)型和操作——深入討論Python主要的外置對象類(lèi)型:數字、列表和字典等。
  語(yǔ)句和句型——在Python中輸入代碼來(lái)構建并處理對象,以及Python通常的句型模型。
  函數——Python基本的面向過(guò)程工具,用于組織代碼和重用。
  模塊——封裝句子、函數以及其他工具,從而可以組織成較大的組件。
  類(lèi)和OOP——Python可選的面向對象編程工具,可用于組織程序代碼因而實(shí)現訂制和重用。
  異常和工具——異常處理模型和句子,并介紹編撰更大程序的開(kāi)發(fā)工具。
  討論Python 3.0。
  《Python學(xué)習手冊(第3版)》讓你對Python語(yǔ)言有深入而完整的了解,從而幫助你理解今后碰到的任何Python應用程序實(shí)例。如果你打算探求Google和YouTube為何選中了Python,《Python學(xué)習手冊(第3版)》就是你入門(mén)的最佳手冊。
  第二個(gè)
  《Python基礎教程(第2版·修訂版)》也是精典的Python入門(mén)教程,層次鮮明,結構嚴謹,內容詳實(shí),特別是最后幾章,作者將上面述說(shuō)的內容應用到10個(gè)引人入勝的項目中,并以模板的方式介紹了項目的開(kāi)發(fā)過(guò)程,手把手院長(cháng)Python開(kāi)發(fā),讓讀者從項目中展現Python的真正魅力。這本書(shū)既適宜初學(xué)者筑牢基礎,又能幫助Python程序員提高技能,即使是Python方面的技術(shù)專(zhuān)家,也能從書(shū)里找到耳目一新的內容。
  第三個(gè)
  《“笨辦法”學(xué)Python(第3版)》是一本Python入門(mén)書(shū)籍,適合對計算機了解不多,沒(méi)有學(xué)過(guò)編程,但對編程感興趣的初學(xué)者使用。這本書(shū)結構十分簡(jiǎn)單,其中覆蓋了輸入/輸出、變量和函數三個(gè)主題,以及一些比較中級的話(huà)題,如條件判定、循環(huán)、類(lèi)和對象、代碼測試及項目的實(shí)現等。每一章的格式基本相同,以代碼習題開(kāi)始,按照說(shuō)明編撰代碼,運行并檢測結果,然后再做附加練習。這本書(shū)以習題的方法引導讀者一步一步學(xué)習編程,從簡(jiǎn)單的復印仍然講授到完整項目的實(shí)現,讓初學(xué)者從基礎的編程技術(shù)入手,最終體驗到軟件開(kāi)發(fā)的基本過(guò)程。
  【大牛評價(jià)】hardway(笨辦法)比較適宜起步編程,作為Python的入門(mén)挺不錯。
  第四個(gè)
  在這里給你們推薦最后一本《集體智慧編程》
  本書(shū)以機器學(xué)習與估算統計為主題背景,專(zhuān)門(mén)述說(shuō)怎么挖掘和剖析Web上的數據和資源,如何剖析用戶(hù)體驗、市場(chǎng)營(yíng)銷(xiāo)、個(gè)人品位等眾多信息,并得出有用的推論python爬蟲(chóng)數據書(shū)籍,通過(guò)復雜的算法來(lái)從Web網(wǎng)站獲取、收集并剖析用戶(hù)的數據和反饋信息,以便創(chuàng )造新的用戶(hù)價(jià)值和商業(yè)價(jià)值。
  全書(shū)內容詳實(shí),包括協(xié)作過(guò)濾技術(shù)(實(shí)現關(guān)聯(lián)產(chǎn)品推薦功能)、集群數據剖析(在大規模數據集中開(kāi)掘相像的數據子集)、搜索引擎核心技術(shù)(爬蟲(chóng)、索引、查詢(xún)引擎、PageRank算法等)、搜索海量信息并進(jìn)行剖析統計得出結論的優(yōu)化算法、貝葉斯過(guò)濾技術(shù)(垃圾郵件過(guò)濾、文本過(guò)濾)、用決策樹(shù)技術(shù)實(shí)現預測和決策建模功能、社交網(wǎng)絡(luò )的信息匹配技術(shù)、機器學(xué)習和人工智能應用等。
  本書(shū)是Web開(kāi)發(fā)者、架構師、應用工程師等的極佳選擇。
  “太棒了!對于初學(xué)這種算法的開(kāi)發(fā)者而言,我想不出有比這本書(shū)更好的選擇了,而對于象我這樣學(xué)過(guò)Al的道友而言,我也想不出還有什么更好的辦法才能使自己重溫這種知識的細節?!?br />   ——Dan Russell,資深技術(shù)總監,Google
  “Toby的這本書(shū)十分成功地將機器學(xué)習算法這一復雜的議程分拆成了一個(gè)個(gè)既實(shí)用又易懂的事例,我們可以直接借助那些反例來(lái)剖析當前網(wǎng)路上的社會(huì )化交互作用。假如我早三年讀過(guò)這本書(shū),就會(huì )省去許多寶貴的時(shí)間python爬蟲(chóng)數據書(shū)籍,也不至于走那么多的彎路了?!?br />   ——Tim Wolters,CTO,Collective Intellect
  第五個(gè)
  其實(shí)我認為很多人也在看《Python核心編程:第2版》.在我自己看來(lái),我并不喜歡這本書(shū).
  這本書(shū)的原書(shū)的勘誤表就有夠長(cháng)的,翻譯時(shí)卻幾乎沒(méi)有參考勘誤表,把原書(shū)的所有低級錯誤都搬進(jìn)去了。這本書(shū)的原書(shū)質(zhì)量也并不好,書(shū)的結構組織并不合理,不適宜初學(xué)者閱讀。有人說(shuō),這本書(shū)適宜進(jìn)階閱讀,我認為也不盡然。這本書(shū)好多地方都寫(xiě)的欲言又止的,看得人很郁悶。 查看全部

  于我個(gè)人而言,我很喜歡2113Python,當然我也5261有很多的理由推薦你去學(xué)python.我只4102說(shuō)兩點(diǎn).一是簡(jiǎn)單,二是寫(xiě)python工資高1653.我感覺(jué)這倆理由就夠了,對不對.買(mǎi)本書(shū),裝上pycharm,把書(shū)里面的事例習題都敲一遍.再用flask,web.py等框架搭個(gè)小網(wǎng)站.. 完美...(小伙伴們有問(wèn)到該學(xué)python2.7還是3.X,那我的答案是:目前大多數實(shí)際開(kāi)發(fā),都是用2.7的,因為實(shí)際項目開(kāi)發(fā)有很多依賴(lài)的包,都只支持到2.7,你用3.X干不了活.那你能怎樣辦.所以不需要苦惱.等3.X普及,你寫(xiě)的2.7代碼,都可以無(wú)痛移植,妥妥的不用害怕.)
  第一個(gè)
  個(gè)人覺(jué)得《Python學(xué)習手冊:第3版》是學(xué)習語(yǔ)言基礎比較好的書(shū)了.
  《Python學(xué)習手冊(第3版)》講述了:Python可移植、功能強悍、易于使用,是編撰獨立應用程序和腳本應用程序的理想選擇。無(wú)論你是剛接觸編程或則剛接觸Python,通過(guò)學(xué)習《Python學(xué)習手冊(第3版)》,你可以迅速高效地精通核心Python語(yǔ)言基礎。讀完《Python學(xué)習手冊(第3版)》,你會(huì )對這門(mén)語(yǔ)言有足夠的了解,從而可以在你所從事的任何應用領(lǐng)域中使用它。
  《Python學(xué)習手冊(第3版)》是作者依據過(guò)去10年用于教學(xué)而廣為人知的培訓課程的材料編撰而成的。除了有許多詳盡說(shuō)明和每章小結之外,每章還包括一個(gè)頭腦風(fēng)暴:這是《Python學(xué)習手冊(第3版)》獨特的一部分,配合以實(shí)用的練習題和復習題,讓讀者練習新學(xué)的方法并測試自己的理解程度。
  《Python學(xué)習手冊(第3版)》包括:
  類(lèi)型和操作——深入討論Python主要的外置對象類(lèi)型:數字、列表和字典等。
  語(yǔ)句和句型——在Python中輸入代碼來(lái)構建并處理對象,以及Python通常的句型模型。
  函數——Python基本的面向過(guò)程工具,用于組織代碼和重用。
  模塊——封裝句子、函數以及其他工具,從而可以組織成較大的組件。
  類(lèi)和OOP——Python可選的面向對象編程工具,可用于組織程序代碼因而實(shí)現訂制和重用。
  異常和工具——異常處理模型和句子,并介紹編撰更大程序的開(kāi)發(fā)工具。
  討論Python 3.0。
  《Python學(xué)習手冊(第3版)》讓你對Python語(yǔ)言有深入而完整的了解,從而幫助你理解今后碰到的任何Python應用程序實(shí)例。如果你打算探求Google和YouTube為何選中了Python,《Python學(xué)習手冊(第3版)》就是你入門(mén)的最佳手冊。
  第二個(gè)
  《Python基礎教程(第2版·修訂版)》也是精典的Python入門(mén)教程,層次鮮明,結構嚴謹,內容詳實(shí),特別是最后幾章,作者將上面述說(shuō)的內容應用到10個(gè)引人入勝的項目中,并以模板的方式介紹了項目的開(kāi)發(fā)過(guò)程,手把手院長(cháng)Python開(kāi)發(fā),讓讀者從項目中展現Python的真正魅力。這本書(shū)既適宜初學(xué)者筑牢基礎,又能幫助Python程序員提高技能,即使是Python方面的技術(shù)專(zhuān)家,也能從書(shū)里找到耳目一新的內容。
  第三個(gè)
  《“笨辦法”學(xué)Python(第3版)》是一本Python入門(mén)書(shū)籍,適合對計算機了解不多,沒(méi)有學(xué)過(guò)編程,但對編程感興趣的初學(xué)者使用。這本書(shū)結構十分簡(jiǎn)單,其中覆蓋了輸入/輸出、變量和函數三個(gè)主題,以及一些比較中級的話(huà)題,如條件判定、循環(huán)、類(lèi)和對象、代碼測試及項目的實(shí)現等。每一章的格式基本相同,以代碼習題開(kāi)始,按照說(shuō)明編撰代碼,運行并檢測結果,然后再做附加練習。這本書(shū)以習題的方法引導讀者一步一步學(xué)習編程,從簡(jiǎn)單的復印仍然講授到完整項目的實(shí)現,讓初學(xué)者從基礎的編程技術(shù)入手,最終體驗到軟件開(kāi)發(fā)的基本過(guò)程。
  【大牛評價(jià)】hardway(笨辦法)比較適宜起步編程,作為Python的入門(mén)挺不錯。
  第四個(gè)
  在這里給你們推薦最后一本《集體智慧編程》
  本書(shū)以機器學(xué)習與估算統計為主題背景,專(zhuān)門(mén)述說(shuō)怎么挖掘和剖析Web上的數據和資源,如何剖析用戶(hù)體驗、市場(chǎng)營(yíng)銷(xiāo)、個(gè)人品位等眾多信息,并得出有用的推論python爬蟲(chóng)數據書(shū)籍,通過(guò)復雜的算法來(lái)從Web網(wǎng)站獲取、收集并剖析用戶(hù)的數據和反饋信息,以便創(chuàng )造新的用戶(hù)價(jià)值和商業(yè)價(jià)值。
  全書(shū)內容詳實(shí),包括協(xié)作過(guò)濾技術(shù)(實(shí)現關(guān)聯(lián)產(chǎn)品推薦功能)、集群數據剖析(在大規模數據集中開(kāi)掘相像的數據子集)、搜索引擎核心技術(shù)(爬蟲(chóng)、索引、查詢(xún)引擎、PageRank算法等)、搜索海量信息并進(jìn)行剖析統計得出結論的優(yōu)化算法、貝葉斯過(guò)濾技術(shù)(垃圾郵件過(guò)濾、文本過(guò)濾)、用決策樹(shù)技術(shù)實(shí)現預測和決策建模功能、社交網(wǎng)絡(luò )的信息匹配技術(shù)、機器學(xué)習和人工智能應用等。
  本書(shū)是Web開(kāi)發(fā)者、架構師、應用工程師等的極佳選擇。
  “太棒了!對于初學(xué)這種算法的開(kāi)發(fā)者而言,我想不出有比這本書(shū)更好的選擇了,而對于象我這樣學(xué)過(guò)Al的道友而言,我也想不出還有什么更好的辦法才能使自己重溫這種知識的細節?!?br />   ——Dan Russell,資深技術(shù)總監,Google
  “Toby的這本書(shū)十分成功地將機器學(xué)習算法這一復雜的議程分拆成了一個(gè)個(gè)既實(shí)用又易懂的事例,我們可以直接借助那些反例來(lái)剖析當前網(wǎng)路上的社會(huì )化交互作用。假如我早三年讀過(guò)這本書(shū),就會(huì )省去許多寶貴的時(shí)間python爬蟲(chóng)數據書(shū)籍,也不至于走那么多的彎路了?!?br />   ——Tim Wolters,CTO,Collective Intellect
  第五個(gè)
  其實(shí)我認為很多人也在看《Python核心編程:第2版》.在我自己看來(lái),我并不喜歡這本書(shū).
  這本書(shū)的原書(shū)的勘誤表就有夠長(cháng)的,翻譯時(shí)卻幾乎沒(méi)有參考勘誤表,把原書(shū)的所有低級錯誤都搬進(jìn)去了。這本書(shū)的原書(shū)質(zhì)量也并不好,書(shū)的結構組織并不合理,不適宜初學(xué)者閱讀。有人說(shuō),這本書(shū)適宜進(jìn)階閱讀,我認為也不盡然。這本書(shū)好多地方都寫(xiě)的欲言又止的,看得人很郁悶。

Python 網(wǎng)絡(luò )爬蟲(chóng)實(shí)戰:爬取并下載《電影天堂》3千多部動(dòng)作片影片

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 1523 次瀏覽 ? 2020-07-03 08:00 ? 來(lái)自相關(guān)話(huà)題

  不知不覺(jué),玩爬蟲(chóng)玩了一個(gè)多月了。
  我更加認為,爬蟲(chóng)似乎并不是哪些非常深奧的技術(shù),它的價(jià)值不在于你使用了哪些非常牛的框架,用了多么了不起的技術(shù),它不需要。它只是以一種自動(dòng)化收集數據的小工具,能夠獲取到想要的數據,就是它最大的價(jià)值。
  我的爬蟲(chóng)課老師也常跟我們指出,學(xué)習爬蟲(chóng)最重要的,不是學(xué)習上面的技術(shù),因為后端技術(shù)在不斷的發(fā)展,爬蟲(chóng)的技術(shù)便會(huì )隨著(zhù)改變。學(xué)習爬蟲(chóng)最重要的是,學(xué)習它的原理,萬(wàn)變不距其宗。
  爬蟲(chóng)說(shuō)白了是為了解決須要,方便生活的。如果還能在日常生活中,想到并應用爬蟲(chóng)去解決實(shí)際的問(wèn)題,那么爬蟲(chóng)的真正意義也久發(fā)揮下來(lái)了。
  這是些閑談啦,有感而發(fā)而已。
  最近有點(diǎn)片荒,不知道該看哪些影片,而且有些影片在網(wǎng)上找很久也找不到資源。后來(lái)我了解到這個(gè)網(wǎng)站,發(fā)現近來(lái)好多不錯的影片里面都有資源(這里我就先不管它的來(lái)源正不正規啦,#掩面)。
  所以此次我們要爬取的網(wǎng)站是:《電影天堂》,屯一些影片,等無(wú)趣的時(shí)侯拿出來(lái)瞧瞧,消遣閑暇也是不錯。
  
  這次的網(wǎng)站,從爬蟲(chóng)的技術(shù)角度上來(lái)講,難度不大,而且可以說(shuō)是十分簡(jiǎn)單了。但是,它實(shí)用??!你想嘛,早上下班前跑一下爬蟲(chóng),晚上回去之后早已有幾十部最新大片在你硬碟里等著(zhù)你啦,累了三天躺床上瞧瞧影片,這種覺(jué)得是不是太爽啊。
  而且正由于這個(gè)爬蟲(chóng)比較簡(jiǎn)單,所以我會(huì )寫(xiě)的稍為細一點(diǎn),爭取使 python 小白們也能盡可能讀懂,并且還能在這個(gè)爬蟲(chóng)的基礎上更改,得到爬取這個(gè)網(wǎng)站其他藍籌股或則其他影片網(wǎng)站的爬蟲(chóng)。
  在編撰爬蟲(chóng)程序之前,我先捋一捋我們的思路。
  爬蟲(chóng)的原理,是通過(guò)給定的一個(gè)URL(就是類(lèi)似于 這樣的,俗稱(chēng)網(wǎng)址的東東) 請求,去訪(fǎng)問(wèn)一個(gè)網(wǎng)頁(yè),獲取哪個(gè)網(wǎng)頁(yè)上的源代碼(不知道源代碼的,隨便打開(kāi)一個(gè)網(wǎng)頁(yè),右鍵,查看網(wǎng)頁(yè)源代碼,出來(lái)的一大堆象亂碼一樣的東西就是網(wǎng)頁(yè)源代碼,我們須要的數據就藏在這種源代碼上面)并返回來(lái)。然后,通過(guò)一些手段(比如說(shuō)json庫,BeautifulSoup庫,正則表達式等)從網(wǎng)頁(yè)源代碼中篩選出我們想要的數據(當然,前提是我們須要剖析網(wǎng)頁(yè)結構,知道自己想要哪些數據,以及那些數據儲存在網(wǎng)頁(yè)的哪里網(wǎng)絡(luò )爬蟲(chóng)下載,存放的位置有哪些特點(diǎn)等)。最后,將我們獲取到的數據根據一定的格式,存儲到本地或則數據庫中,這樣就完成了爬蟲(chóng)的全部工作。
  當然,也有一些 「騷操作」,如果你嫌爬蟲(chóng)效率低,可以開(kāi)多線(xiàn)程(就是相當于幾十只爬蟲(chóng)同時(shí)給你爬,效率直接翻了幾十倍);如果害怕爬取頻度過(guò)低被網(wǎng)站封 IP,可以?huà)?IP 代理(相當于打幾槍換個(gè)地方,對方網(wǎng)站就不知道你到底是爬蟲(chóng)還是正常訪(fǎng)問(wèn)的用戶(hù)了);如果對方網(wǎng)站有反爬機制,那么也有一些騷操作可以繞開(kāi)反爬機制(有點(diǎn)黑客攻守的覺(jué)得,有木有?。?。這些都是后話(huà)了。
  1. 分析網(wǎng)頁(yè)的 URL 的組成結構
  首先,我們須要剖析網(wǎng)頁(yè)的 URL 的組成結構,主要關(guān)注兩方面,一是怎樣切換選擇的影片類(lèi)型,二是網(wǎng)頁(yè)怎么翻頁(yè)的。
  電影類(lèi)型
  網(wǎng)址
  劇情片
  喜劇片
  動(dòng)作片
  愛(ài)情片
  科幻片
  動(dòng)畫(huà)片
  懸疑片
  驚悚片
  恐怖片
  記錄片
  ......
  ......
  災難片
  武俠片
  古裝片
  發(fā)現規律了吧,以后假如想爬其他類(lèi)型的影片,只要改變 url 中的數字即可,甚至你可以寫(xiě)一個(gè)循環(huán),把所有藍籌股中的影片全部爬取出來(lái)。
  頁(yè)碼
  URL
  第一頁(yè)
  第二頁(yè)
  第三頁(yè)
  第四頁(yè)
  除了第一頁(yè)是 「index」外,其余頁(yè)腳均是 「index_頁(yè)碼」的方式。
  所以我們基本把握了網(wǎng)站的 url 的構成方式,這樣我們就可以通過(guò)自己構造 url 來(lái)訪(fǎng)問(wèn)任意類(lèi)型影片的任意一頁(yè)了,是不是太酷。
  2. 分析網(wǎng)站的頁(yè)面結構
  其次,我們剖析一下網(wǎng)站的頁(yè)面結構,看一看我們須要的信息都藏在網(wǎng)頁(yè)的哪些地方(在這之前我們先要明晰一下我們須要什么數據),由于我們這個(gè)目的是下載影片,所以對我有用的數據只有兩個(gè),電影名稱(chēng)和下載影片的磁力鏈接。
  按 F12 召喚出開(kāi)發(fā)者工具(這個(gè)工具可以幫助你快速定位網(wǎng)頁(yè)中的元素在 html 源代碼中位置)。
  
  然后,我們可以發(fā)覺(jué),電影列表中,每一部影片的信息儲存在一個(gè) <table> 標簽里,而影片的名子,就藏在上面的一個(gè) <a> 標簽中。電影下載的磁力鏈接在影片的詳情頁(yè)面,而影片詳情頁(yè)面的網(wǎng)址也在這個(gè)<a> 標簽中( href 屬性的值)。
  
  而下載的磁力鏈接,存放在 <tbody> 標簽下的 <a> 標簽中,是不是太好找??!
  最后我們來(lái)縷一縷思路,一會(huì )兒我們打算這樣操作:通過(guò)上面的網(wǎng)址的構造規則,訪(fǎng)問(wèn)到網(wǎng)站的某一頁(yè),然后獲取到這個(gè)頁(yè)面里的所有 table 標簽(這里儲存著(zhù)影片的數據),然后從每一個(gè) table 標簽中找到存有影片名稱(chēng)的 a 標簽(這里可以領(lǐng)到影片名稱(chēng)以及詳情頁(yè)面的網(wǎng)址),然后通過(guò)這兒獲取的網(wǎng)址訪(fǎng)問(wèn)影片的詳情頁(yè)面,在詳情頁(yè)面選購出 <tbody> 標簽下的 <a> 標簽(這里儲存著(zhù)影片的下載鏈接),這樣我們就找到了我們所須要的全部數據了,是不是很簡(jiǎn)單啊。
  爬蟲(chóng)的程序,我通常習慣把它分成五個(gè)部份, 一是主函數,作為程序的入口,二是爬蟲(chóng)調度器,三是網(wǎng)路懇求函數,四是網(wǎng)頁(yè)解析函數,五是數據儲存函數。
  
# 我們用到的庫
import requests
import bs4
import re
import pandas as pd
  1.網(wǎng)絡(luò )懇求函數 :get_data (url)
  負責訪(fǎng)問(wèn)指定的 url 網(wǎng)頁(yè),并將網(wǎng)頁(yè)的內容返回,此部份功能比較簡(jiǎn)單固定,一般不需要做更改(除非你要掛代理,或者自定義懇求頭等,可以做一些相應的調整)。
  
def get_data(url):
'''
功能:訪(fǎng)問(wèn) url 的網(wǎng)頁(yè),獲取網(wǎng)頁(yè)內容并返回
參數:
url :目標網(wǎng)頁(yè)的 url
返回:目標網(wǎng)頁(yè)的 html 內容
'''
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}

try:
r = requests.get(url, headers=headers)
r.raise_for_status()
return r.text

except requests.HTTPError as e:
print(e)
print("HTTPError")
except requests.RequestException as e:
print(e)
except:
print("Unknown Error !")
  2.網(wǎng)頁(yè)解析函數:parse_data(html)
  這個(gè)函數是整個(gè)爬蟲(chóng)程序的核心所在,整體思路在上一部分早已講過(guò)了。我這兒使用的庫是BeautifulSoup。
  這部份的寫(xiě)法多種多樣,有很多發(fā)揮的空間,也沒(méi)有哪些太多固定的模式,因為這部份的寫(xiě)法是要隨著(zhù)不同網(wǎng)站的頁(yè)面結構來(lái)做調整的,比如說(shuō)有的網(wǎng)站提供了數據的 api 接口,那么返回的數據就是 json 格式,我們只須要調用 json 庫就可以完成數據解析,而大部分的網(wǎng)站只能通過(guò)從網(wǎng)頁(yè)源代碼中一層層篩選(篩選手段也多種多樣,什么正則表達式,beautifulsoup等等)。
  這里須要依照數據的方式來(lái)選擇不同的篩選策略,所以,知道原理就可以了,習慣哪些方式就用哪些方式,反正最后能領(lǐng)到數據就好了。
  
def parse_data(html):
'''
功能:提取 html 頁(yè)面信息中的關(guān)鍵信息,并整合一個(gè)數組并返回
參數:html 根據 url 獲取到的網(wǎng)頁(yè)內容
返回:存儲有 html 中提取出的關(guān)鍵信息的數組
'''
bsobj = bs4.BeautifulSoup(html,'html.parser')
info = []

# 獲取電影列表
tbList = bsobj.find_all('table', attrs = {'class': 'tbspan'})

# 對電影列表中的每一部電影單獨處理
for item in tbList:
movie = []
link = item.b.find_all('a')[1]
# 獲取電影的名稱(chēng)
name = link["title"]
# 獲取詳情頁(yè)面的 url
url = 'https://www.dy2018.com' + link["href"]
# 將數據存放到電影信息列表里
movie.append(name)
movie.append(url)

try:
# 訪(fǎng)問(wèn)電影的詳情頁(yè)面,查找電影下載的磁力鏈接
temp = bs4.BeautifulSoup(get_data(url),'html.parser')
tbody = temp.find_all('tbody')

# 下載鏈接有多個(gè)(也可能沒(méi)有),這里將所有鏈接都放進(jìn)來(lái)
for i in tbody:
download = i.a.text
movie.append(download)

#print(movie)
# 將此電影的信息加入到電影列表中
info.append(movie)

except Exception as e:
print(e)

return info
  3. 數據儲存函數:save_data(data)
  這個(gè)函數目的是將數據儲存到本地文件或數據庫中,具體的寫(xiě)法要按照實(shí)際須要的儲存方式來(lái)定,我這兒是將數據儲存在本地的 csv 文件中。
  當然這個(gè)函數也并不只能做這些事兒,比如你可以在這里寫(xiě)一些簡(jiǎn)單的數據處理的操作,比如說(shuō):數據清洗,數據去重等操作。
  
def save_data(data):
'''
功能:將 data 中的信息輸出到文件中/或數據庫中。
參數:data 將要保存的數據
'''
filename = 'Data/電影天堂/動(dòng)作片.csv'

dataframe = pd.DataFrame(data)
dataframe.to_csv(filename, mode='a', index=False, sep=',', header=False)
  4. 爬蟲(chóng)調度器:main()
  這個(gè)函數負責按照 url 生成規則,構造新的 url 請求,然后依次調用網(wǎng)路懇求函數,網(wǎng)頁(yè)解析函數,數據儲存函數,爬取并保存該頁(yè)數據。
  所謂爬蟲(chóng)調度器,就是控制爬蟲(chóng)哪些時(shí)侯開(kāi)始爬,多少只爬蟲(chóng)一起爬,爬那個(gè)網(wǎng)頁(yè),爬多久休息一次,等等這種事兒。
  
def main():
# 循環(huán)爬取多頁(yè)數據
for page in range(1, 114):
print('正在爬?。旱? + str(page) + '頁(yè)......')
# 根據之前分析的 URL 的組成結構,構造新的 url
if page == 1:
index = 'index'
else:
index = 'index_' + str(page)
url = 'https://www.dy2018.com/2/'+ index +'.html'
# 依次調用網(wǎng)絡(luò )請求函數,網(wǎng)頁(yè)解析函數,數據存儲函數,爬取并保存該頁(yè)數據
html = get_data(url)
movies = parse_data(html)
save_data(movies)

print('第' + str(page) + '頁(yè)完成!')
  5. 主函數:程序入口
  主函數作為程序的入口,只負責啟動(dòng)爬蟲(chóng)調度器。
  這里我通常習慣在 main() 函數前后輸出一條句子,以此判定爬蟲(chóng)程序是否正常啟動(dòng)和結束。
  
if __name__ == '__main__':
print('爬蟲(chóng)啟動(dòng)成功!')
main()
print('爬蟲(chóng)執行完畢!')
  運行了兩個(gè)小時(shí)左右吧,終于爬完了 113 頁(yè),共 3346 部動(dòng)作片影片的數據(本來(lái)不止這種的,但是有一些影片沒(méi)有提供下載鏈接,我在 excel 中排序后直接自動(dòng)剔除了)。
  
  
  然后想看哪些影片的話(huà),直接復制這種影片下載的磁力鏈接,到迅雷上面下載就好啦。
  1. 在網(wǎng)站提供的下載鏈接中,我試了一下,發(fā)現magnet 開(kāi)頭的這類(lèi)鏈接置于迅雷中可以直接下載,而 ftp 開(kāi)頭的鏈接在迅雷中總顯示資源獲取失?。ㄎ也恢朗遣皇俏掖蜷_(kāi)的形式不對,反正就是下載不來(lái)),于是我對程序做了一些小的調整,使其只獲取magnet 這類(lèi)的鏈接。
  修改的方法也很簡(jiǎn)單,只須要調整 網(wǎng)頁(yè)解析函數 即可(爬蟲(chóng)的五個(gè)部份是相對獨立的,修改時(shí)只需調整相應的模塊即可,其余部份無(wú)需更改)。
  
def parse_data(html):
'''
功能:提取 html 頁(yè)面信息中的關(guān)鍵信息,并整合一個(gè)數組并返回
參數:html 根據 url 獲取到的網(wǎng)頁(yè)內容
返回:存儲有 html 中提取出的關(guān)鍵信息的數組
'''
bsobj = bs4.BeautifulSoup(html,'html.parser')
info = []

# 獲取表頭信息
tbList = bsobj.find_all('table', attrs = {'class': 'tbspan'})

for item in tbList:
movie = []
link = item.b.find_all('a')[1]
name = link["title"]
url = 'https://www.dy2018.com' + link["href"]

try:
# 查找電影下載的磁力鏈接
temp = bs4.BeautifulSoup(get_data(url),'html.parser')
tbody = temp.find_all('tbody')

for i in tbody:
download = i.a.text
if 'magnet:?xt=urn:btih' in download:
movie.append(name)
movie.append(url)
movie.append(download)
#print(movie)
info.append(movie)
break
except Exception as e:
print(e)

return info
  注意代碼 26 行處,我加了一個(gè) if 語(yǔ)句的判定,如果下載鏈接中包含magnet:?xt=urn:btih 字符串,則視為有效鏈接,下載出來(lái),否則跳過(guò)。
  2. 我仍然在想能不能有個(gè)辦法使迅雷一鍵批量下載我們爬到的影片。使用 python 操縱第三方的軟件,這或許很難的。不之后來(lái)找到了一種方式,也算是解決了這個(gè)問(wèn)題。
  就是我們發(fā)覺(jué)迅雷軟件啟動(dòng)后,會(huì )手動(dòng)檢查我們的剪切板,只要我們復制了下載鏈接,它便會(huì )手動(dòng)彈出下載的提示框。借助這個(gè)思路,我們可以使用代碼,將下載的鏈接復制步入剪切板,等下載框手動(dòng)出現后,手動(dòng)確認開(kāi)始下載(這是我目前想到的最好的辦法了,不知道諸位大鱷有沒(méi)有更好的思路,歡迎指導交流)。
  
import pyperclip
import os
import pandas as pd
imageData = pd.read_csv("Data/電影天堂/動(dòng)作片2.csv",names=['name','link','download'],encoding = 'gbk')
# 獲取電影的下載鏈接,并用換行符分隔
a_link = imageData['download']
links = '\n'.join(a_link)
# 復制到剪切板
pyperclip.copy(links);
print('已粘貼');

# 打開(kāi)迅雷
thunder_path = r'D:\Program Files (x86)\Thunder Network\Thunder9\Program\Thunder.exe'
os.startfile(thunder_path)
  親測可以實(shí)現,但是。。。不建議嘗試(你能想像迅雷打開(kāi)的一瞬間創(chuàng )建幾百個(gè)下載任務(wù)的場(chǎng)景嗎?反正我的筆記本是緩了好久好久才反應過(guò)來(lái))。大家還是老老實(shí)實(shí)的,手動(dòng)復制鏈接下載吧(csv文件可以用 excel 打開(kāi)網(wǎng)絡(luò )爬蟲(chóng)下載,豎著(zhù)選中一列,然后復制,也能達到相同的療效),這種騷操作很蠢了還是不要試了。
  啰啰嗦嗦的寫(xiě)了很多,也不知道關(guān)鍵的問(wèn)題講清楚了沒(méi)有。有那里沒(méi)講清楚,或者那里講的不合適的話(huà),歡迎恐嚇。
  其實(shí)吧,寫(xiě)文章,寫(xiě)博客,寫(xiě)教程,都是一個(gè)知識重新熔煉內化的過(guò)程,在寫(xiě)這篇博客的時(shí)侯,我也仍然在反復考量我學(xué)習爬蟲(chóng)的過(guò)程,以及我爬蟲(chóng)代碼一步步的變化,從一開(kāi)始的所有代碼全部揉在主函數中,到后來(lái)把一些變動(dòng)較少的功能提取下來(lái),寫(xiě)成單獨的函數,再到后來(lái)產(chǎn)生基本穩定的五大部份。
  以至于在我后來(lái)學(xué)習使用 scrapy 框架時(shí)侯,驚人的發(fā)覺(jué) scrapy 框架的結構跟我的爬蟲(chóng)結構有著(zhù)異曲同工之妙,我的這個(gè)相當于是一個(gè)簡(jiǎn)易版的爬蟲(chóng)框架了,純靠自己摸索達到這個(gè)療效,我覺(jué)得還是很有成就感的。 查看全部

  不知不覺(jué),玩爬蟲(chóng)玩了一個(gè)多月了。
  我更加認為,爬蟲(chóng)似乎并不是哪些非常深奧的技術(shù),它的價(jià)值不在于你使用了哪些非常牛的框架,用了多么了不起的技術(shù),它不需要。它只是以一種自動(dòng)化收集數據的小工具,能夠獲取到想要的數據,就是它最大的價(jià)值。
  我的爬蟲(chóng)課老師也常跟我們指出,學(xué)習爬蟲(chóng)最重要的,不是學(xué)習上面的技術(shù),因為后端技術(shù)在不斷的發(fā)展,爬蟲(chóng)的技術(shù)便會(huì )隨著(zhù)改變。學(xué)習爬蟲(chóng)最重要的是,學(xué)習它的原理,萬(wàn)變不距其宗。
  爬蟲(chóng)說(shuō)白了是為了解決須要,方便生活的。如果還能在日常生活中,想到并應用爬蟲(chóng)去解決實(shí)際的問(wèn)題,那么爬蟲(chóng)的真正意義也久發(fā)揮下來(lái)了。
  這是些閑談啦,有感而發(fā)而已。
  最近有點(diǎn)片荒,不知道該看哪些影片,而且有些影片在網(wǎng)上找很久也找不到資源。后來(lái)我了解到這個(gè)網(wǎng)站,發(fā)現近來(lái)好多不錯的影片里面都有資源(這里我就先不管它的來(lái)源正不正規啦,#掩面)。
  所以此次我們要爬取的網(wǎng)站是:《電影天堂》,屯一些影片,等無(wú)趣的時(shí)侯拿出來(lái)瞧瞧,消遣閑暇也是不錯。
  
  這次的網(wǎng)站,從爬蟲(chóng)的技術(shù)角度上來(lái)講,難度不大,而且可以說(shuō)是十分簡(jiǎn)單了。但是,它實(shí)用??!你想嘛,早上下班前跑一下爬蟲(chóng),晚上回去之后早已有幾十部最新大片在你硬碟里等著(zhù)你啦,累了三天躺床上瞧瞧影片,這種覺(jué)得是不是太爽啊。
  而且正由于這個(gè)爬蟲(chóng)比較簡(jiǎn)單,所以我會(huì )寫(xiě)的稍為細一點(diǎn),爭取使 python 小白們也能盡可能讀懂,并且還能在這個(gè)爬蟲(chóng)的基礎上更改,得到爬取這個(gè)網(wǎng)站其他藍籌股或則其他影片網(wǎng)站的爬蟲(chóng)。
  在編撰爬蟲(chóng)程序之前,我先捋一捋我們的思路。
  爬蟲(chóng)的原理,是通過(guò)給定的一個(gè)URL(就是類(lèi)似于 這樣的,俗稱(chēng)網(wǎng)址的東東) 請求,去訪(fǎng)問(wèn)一個(gè)網(wǎng)頁(yè),獲取哪個(gè)網(wǎng)頁(yè)上的源代碼(不知道源代碼的,隨便打開(kāi)一個(gè)網(wǎng)頁(yè),右鍵,查看網(wǎng)頁(yè)源代碼,出來(lái)的一大堆象亂碼一樣的東西就是網(wǎng)頁(yè)源代碼,我們須要的數據就藏在這種源代碼上面)并返回來(lái)。然后,通過(guò)一些手段(比如說(shuō)json庫,BeautifulSoup庫,正則表達式等)從網(wǎng)頁(yè)源代碼中篩選出我們想要的數據(當然,前提是我們須要剖析網(wǎng)頁(yè)結構,知道自己想要哪些數據,以及那些數據儲存在網(wǎng)頁(yè)的哪里網(wǎng)絡(luò )爬蟲(chóng)下載,存放的位置有哪些特點(diǎn)等)。最后,將我們獲取到的數據根據一定的格式,存儲到本地或則數據庫中,這樣就完成了爬蟲(chóng)的全部工作。
  當然,也有一些 「騷操作」,如果你嫌爬蟲(chóng)效率低,可以開(kāi)多線(xiàn)程(就是相當于幾十只爬蟲(chóng)同時(shí)給你爬,效率直接翻了幾十倍);如果害怕爬取頻度過(guò)低被網(wǎng)站封 IP,可以?huà)?IP 代理(相當于打幾槍換個(gè)地方,對方網(wǎng)站就不知道你到底是爬蟲(chóng)還是正常訪(fǎng)問(wèn)的用戶(hù)了);如果對方網(wǎng)站有反爬機制,那么也有一些騷操作可以繞開(kāi)反爬機制(有點(diǎn)黑客攻守的覺(jué)得,有木有?。?。這些都是后話(huà)了。
  1. 分析網(wǎng)頁(yè)的 URL 的組成結構
  首先,我們須要剖析網(wǎng)頁(yè)的 URL 的組成結構,主要關(guān)注兩方面,一是怎樣切換選擇的影片類(lèi)型,二是網(wǎng)頁(yè)怎么翻頁(yè)的。
  電影類(lèi)型
  網(wǎng)址
  劇情片
  喜劇片
  動(dòng)作片
  愛(ài)情片
  科幻片
  動(dòng)畫(huà)片
  懸疑片
  驚悚片
  恐怖片
  記錄片
  ......
  ......
  災難片
  武俠片
  古裝片
  發(fā)現規律了吧,以后假如想爬其他類(lèi)型的影片,只要改變 url 中的數字即可,甚至你可以寫(xiě)一個(gè)循環(huán),把所有藍籌股中的影片全部爬取出來(lái)。
  頁(yè)碼
  URL
  第一頁(yè)
  第二頁(yè)
  第三頁(yè)
  第四頁(yè)
  除了第一頁(yè)是 「index」外,其余頁(yè)腳均是 「index_頁(yè)碼」的方式。
  所以我們基本把握了網(wǎng)站的 url 的構成方式,這樣我們就可以通過(guò)自己構造 url 來(lái)訪(fǎng)問(wèn)任意類(lèi)型影片的任意一頁(yè)了,是不是太酷。
  2. 分析網(wǎng)站的頁(yè)面結構
  其次,我們剖析一下網(wǎng)站的頁(yè)面結構,看一看我們須要的信息都藏在網(wǎng)頁(yè)的哪些地方(在這之前我們先要明晰一下我們須要什么數據),由于我們這個(gè)目的是下載影片,所以對我有用的數據只有兩個(gè),電影名稱(chēng)和下載影片的磁力鏈接。
  按 F12 召喚出開(kāi)發(fā)者工具(這個(gè)工具可以幫助你快速定位網(wǎng)頁(yè)中的元素在 html 源代碼中位置)。
  
  然后,我們可以發(fā)覺(jué),電影列表中,每一部影片的信息儲存在一個(gè) <table> 標簽里,而影片的名子,就藏在上面的一個(gè) <a> 標簽中。電影下載的磁力鏈接在影片的詳情頁(yè)面,而影片詳情頁(yè)面的網(wǎng)址也在這個(gè)<a> 標簽中( href 屬性的值)。
  
  而下載的磁力鏈接,存放在 <tbody> 標簽下的 <a> 標簽中,是不是太好找??!
  最后我們來(lái)縷一縷思路,一會(huì )兒我們打算這樣操作:通過(guò)上面的網(wǎng)址的構造規則,訪(fǎng)問(wèn)到網(wǎng)站的某一頁(yè),然后獲取到這個(gè)頁(yè)面里的所有 table 標簽(這里儲存著(zhù)影片的數據),然后從每一個(gè) table 標簽中找到存有影片名稱(chēng)的 a 標簽(這里可以領(lǐng)到影片名稱(chēng)以及詳情頁(yè)面的網(wǎng)址),然后通過(guò)這兒獲取的網(wǎng)址訪(fǎng)問(wèn)影片的詳情頁(yè)面,在詳情頁(yè)面選購出 <tbody> 標簽下的 <a> 標簽(這里儲存著(zhù)影片的下載鏈接),這樣我們就找到了我們所須要的全部數據了,是不是很簡(jiǎn)單啊。
  爬蟲(chóng)的程序,我通常習慣把它分成五個(gè)部份, 一是主函數,作為程序的入口,二是爬蟲(chóng)調度器,三是網(wǎng)路懇求函數,四是網(wǎng)頁(yè)解析函數,五是數據儲存函數。
  
# 我們用到的庫
import requests
import bs4
import re
import pandas as pd
  1.網(wǎng)絡(luò )懇求函數 :get_data (url)
  負責訪(fǎng)問(wèn)指定的 url 網(wǎng)頁(yè),并將網(wǎng)頁(yè)的內容返回,此部份功能比較簡(jiǎn)單固定,一般不需要做更改(除非你要掛代理,或者自定義懇求頭等,可以做一些相應的調整)。
  
def get_data(url):
'''
功能:訪(fǎng)問(wèn) url 的網(wǎng)頁(yè),獲取網(wǎng)頁(yè)內容并返回
參數:
url :目標網(wǎng)頁(yè)的 url
返回:目標網(wǎng)頁(yè)的 html 內容
'''
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
}

try:
r = requests.get(url, headers=headers)
r.raise_for_status()
return r.text

except requests.HTTPError as e:
print(e)
print("HTTPError")
except requests.RequestException as e:
print(e)
except:
print("Unknown Error !")
  2.網(wǎng)頁(yè)解析函數:parse_data(html)
  這個(gè)函數是整個(gè)爬蟲(chóng)程序的核心所在,整體思路在上一部分早已講過(guò)了。我這兒使用的庫是BeautifulSoup。
  這部份的寫(xiě)法多種多樣,有很多發(fā)揮的空間,也沒(méi)有哪些太多固定的模式,因為這部份的寫(xiě)法是要隨著(zhù)不同網(wǎng)站的頁(yè)面結構來(lái)做調整的,比如說(shuō)有的網(wǎng)站提供了數據的 api 接口,那么返回的數據就是 json 格式,我們只須要調用 json 庫就可以完成數據解析,而大部分的網(wǎng)站只能通過(guò)從網(wǎng)頁(yè)源代碼中一層層篩選(篩選手段也多種多樣,什么正則表達式,beautifulsoup等等)。
  這里須要依照數據的方式來(lái)選擇不同的篩選策略,所以,知道原理就可以了,習慣哪些方式就用哪些方式,反正最后能領(lǐng)到數據就好了。
  
def parse_data(html):
'''
功能:提取 html 頁(yè)面信息中的關(guān)鍵信息,并整合一個(gè)數組并返回
參數:html 根據 url 獲取到的網(wǎng)頁(yè)內容
返回:存儲有 html 中提取出的關(guān)鍵信息的數組
'''
bsobj = bs4.BeautifulSoup(html,'html.parser')
info = []

# 獲取電影列表
tbList = bsobj.find_all('table', attrs = {'class': 'tbspan'})

# 對電影列表中的每一部電影單獨處理
for item in tbList:
movie = []
link = item.b.find_all('a')[1]
# 獲取電影的名稱(chēng)
name = link["title"]
# 獲取詳情頁(yè)面的 url
url = 'https://www.dy2018.com' + link["href"]
# 將數據存放到電影信息列表里
movie.append(name)
movie.append(url)

try:
# 訪(fǎng)問(wèn)電影的詳情頁(yè)面,查找電影下載的磁力鏈接
temp = bs4.BeautifulSoup(get_data(url),'html.parser')
tbody = temp.find_all('tbody')

# 下載鏈接有多個(gè)(也可能沒(méi)有),這里將所有鏈接都放進(jìn)來(lái)
for i in tbody:
download = i.a.text
movie.append(download)

#print(movie)
# 將此電影的信息加入到電影列表中
info.append(movie)

except Exception as e:
print(e)

return info
  3. 數據儲存函數:save_data(data)
  這個(gè)函數目的是將數據儲存到本地文件或數據庫中,具體的寫(xiě)法要按照實(shí)際須要的儲存方式來(lái)定,我這兒是將數據儲存在本地的 csv 文件中。
  當然這個(gè)函數也并不只能做這些事兒,比如你可以在這里寫(xiě)一些簡(jiǎn)單的數據處理的操作,比如說(shuō):數據清洗,數據去重等操作。
  
def save_data(data):
'''
功能:將 data 中的信息輸出到文件中/或數據庫中。
參數:data 將要保存的數據
'''
filename = 'Data/電影天堂/動(dòng)作片.csv'

dataframe = pd.DataFrame(data)
dataframe.to_csv(filename, mode='a', index=False, sep=',', header=False)
  4. 爬蟲(chóng)調度器:main()
  這個(gè)函數負責按照 url 生成規則,構造新的 url 請求,然后依次調用網(wǎng)路懇求函數,網(wǎng)頁(yè)解析函數,數據儲存函數,爬取并保存該頁(yè)數據。
  所謂爬蟲(chóng)調度器,就是控制爬蟲(chóng)哪些時(shí)侯開(kāi)始爬,多少只爬蟲(chóng)一起爬,爬那個(gè)網(wǎng)頁(yè),爬多久休息一次,等等這種事兒。
  
def main():
# 循環(huán)爬取多頁(yè)數據
for page in range(1, 114):
print('正在爬?。旱? + str(page) + '頁(yè)......')
# 根據之前分析的 URL 的組成結構,構造新的 url
if page == 1:
index = 'index'
else:
index = 'index_' + str(page)
url = 'https://www.dy2018.com/2/'+ index +'.html'
# 依次調用網(wǎng)絡(luò )請求函數,網(wǎng)頁(yè)解析函數,數據存儲函數,爬取并保存該頁(yè)數據
html = get_data(url)
movies = parse_data(html)
save_data(movies)

print('第' + str(page) + '頁(yè)完成!')
  5. 主函數:程序入口
  主函數作為程序的入口,只負責啟動(dòng)爬蟲(chóng)調度器。
  這里我通常習慣在 main() 函數前后輸出一條句子,以此判定爬蟲(chóng)程序是否正常啟動(dòng)和結束。
  
if __name__ == '__main__':
print('爬蟲(chóng)啟動(dòng)成功!')
main()
print('爬蟲(chóng)執行完畢!')
  運行了兩個(gè)小時(shí)左右吧,終于爬完了 113 頁(yè),共 3346 部動(dòng)作片影片的數據(本來(lái)不止這種的,但是有一些影片沒(méi)有提供下載鏈接,我在 excel 中排序后直接自動(dòng)剔除了)。
  
  
  然后想看哪些影片的話(huà),直接復制這種影片下載的磁力鏈接,到迅雷上面下載就好啦。
  1. 在網(wǎng)站提供的下載鏈接中,我試了一下,發(fā)現magnet 開(kāi)頭的這類(lèi)鏈接置于迅雷中可以直接下載,而 ftp 開(kāi)頭的鏈接在迅雷中總顯示資源獲取失?。ㄎ也恢朗遣皇俏掖蜷_(kāi)的形式不對,反正就是下載不來(lái)),于是我對程序做了一些小的調整,使其只獲取magnet 這類(lèi)的鏈接。
  修改的方法也很簡(jiǎn)單,只須要調整 網(wǎng)頁(yè)解析函數 即可(爬蟲(chóng)的五個(gè)部份是相對獨立的,修改時(shí)只需調整相應的模塊即可,其余部份無(wú)需更改)。
  
def parse_data(html):
'''
功能:提取 html 頁(yè)面信息中的關(guān)鍵信息,并整合一個(gè)數組并返回
參數:html 根據 url 獲取到的網(wǎng)頁(yè)內容
返回:存儲有 html 中提取出的關(guān)鍵信息的數組
'''
bsobj = bs4.BeautifulSoup(html,'html.parser')
info = []

# 獲取表頭信息
tbList = bsobj.find_all('table', attrs = {'class': 'tbspan'})

for item in tbList:
movie = []
link = item.b.find_all('a')[1]
name = link["title"]
url = 'https://www.dy2018.com' + link["href"]

try:
# 查找電影下載的磁力鏈接
temp = bs4.BeautifulSoup(get_data(url),'html.parser')
tbody = temp.find_all('tbody')

for i in tbody:
download = i.a.text
if 'magnet:?xt=urn:btih' in download:
movie.append(name)
movie.append(url)
movie.append(download)
#print(movie)
info.append(movie)
break
except Exception as e:
print(e)

return info
  注意代碼 26 行處,我加了一個(gè) if 語(yǔ)句的判定,如果下載鏈接中包含magnet:?xt=urn:btih 字符串,則視為有效鏈接,下載出來(lái),否則跳過(guò)。
  2. 我仍然在想能不能有個(gè)辦法使迅雷一鍵批量下載我們爬到的影片。使用 python 操縱第三方的軟件,這或許很難的。不之后來(lái)找到了一種方式,也算是解決了這個(gè)問(wèn)題。
  就是我們發(fā)覺(jué)迅雷軟件啟動(dòng)后,會(huì )手動(dòng)檢查我們的剪切板,只要我們復制了下載鏈接,它便會(huì )手動(dòng)彈出下載的提示框。借助這個(gè)思路,我們可以使用代碼,將下載的鏈接復制步入剪切板,等下載框手動(dòng)出現后,手動(dòng)確認開(kāi)始下載(這是我目前想到的最好的辦法了,不知道諸位大鱷有沒(méi)有更好的思路,歡迎指導交流)。
  
import pyperclip
import os
import pandas as pd
imageData = pd.read_csv("Data/電影天堂/動(dòng)作片2.csv",names=['name','link','download'],encoding = 'gbk')
# 獲取電影的下載鏈接,并用換行符分隔
a_link = imageData['download']
links = '\n'.join(a_link)
# 復制到剪切板
pyperclip.copy(links);
print('已粘貼');

# 打開(kāi)迅雷
thunder_path = r'D:\Program Files (x86)\Thunder Network\Thunder9\Program\Thunder.exe'
os.startfile(thunder_path)
  親測可以實(shí)現,但是。。。不建議嘗試(你能想像迅雷打開(kāi)的一瞬間創(chuàng )建幾百個(gè)下載任務(wù)的場(chǎng)景嗎?反正我的筆記本是緩了好久好久才反應過(guò)來(lái))。大家還是老老實(shí)實(shí)的,手動(dòng)復制鏈接下載吧(csv文件可以用 excel 打開(kāi)網(wǎng)絡(luò )爬蟲(chóng)下載,豎著(zhù)選中一列,然后復制,也能達到相同的療效),這種騷操作很蠢了還是不要試了。
  啰啰嗦嗦的寫(xiě)了很多,也不知道關(guān)鍵的問(wèn)題講清楚了沒(méi)有。有那里沒(méi)講清楚,或者那里講的不合適的話(huà),歡迎恐嚇。
  其實(shí)吧,寫(xiě)文章,寫(xiě)博客,寫(xiě)教程,都是一個(gè)知識重新熔煉內化的過(guò)程,在寫(xiě)這篇博客的時(shí)侯,我也仍然在反復考量我學(xué)習爬蟲(chóng)的過(guò)程,以及我爬蟲(chóng)代碼一步步的變化,從一開(kāi)始的所有代碼全部揉在主函數中,到后來(lái)把一些變動(dòng)較少的功能提取下來(lái),寫(xiě)成單獨的函數,再到后來(lái)產(chǎn)生基本穩定的五大部份。
  以至于在我后來(lái)學(xué)習使用 scrapy 框架時(shí)侯,驚人的發(fā)覺(jué) scrapy 框架的結構跟我的爬蟲(chóng)結構有著(zhù)異曲同工之妙,我的這個(gè)相當于是一個(gè)簡(jiǎn)易版的爬蟲(chóng)框架了,純靠自己摸索達到這個(gè)療效,我覺(jué)得還是很有成就感的。

panfengzjz的博客

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 369 次瀏覽 ? 2020-06-04 08:04 ? 來(lái)自相關(guān)話(huà)題

  ANONYMOUSLYCN的專(zhuān)欄
  03-03
  
  9259
  python 爬取知乎某一關(guān)鍵字數據
  python爬取知乎某一關(guān)鍵字數據序言和之前爬取Instagram數據一樣,那位朋友還須要爬取知乎前面關(guān)于該影片的評論。沒(méi)想到這是個(gè)坑洞啊??雌饋?lái)很簡(jiǎn)單的一個(gè)事情就顯得很復雜了。知乎假如說(shuō),有哪些事情是最坑的,我覺(jué)得就是在知乎前面討論怎樣抓取知乎的數據了。在2018年的時(shí)侯,知乎又進(jìn)行了一次改版啊。真是一個(gè)坑洞。網(wǎng)上的代碼幾乎都不能使用了。只有這兒!的一篇文章還可以模擬登錄一......
  Someone&的博客
  05-31
  
  5069
  輸入關(guān)鍵字的爬蟲(chóng)方式(運行環(huán)境python3)
  前段時(shí)間,寫(xiě)了爬蟲(chóng),在新浪搜索主頁(yè)面中,實(shí)現了輸入關(guān)鍵詞,爬取關(guān)鍵詞相關(guān)的新聞的標題、發(fā)布時(shí)間、url、關(guān)鍵字及內容。并依據內容,提取了摘要和估算了相似度。下面簡(jiǎn)述自己的思路并將代碼的githup鏈接給出:1、獲取關(guān)鍵詞新聞頁(yè)面的url在新浪搜索主頁(yè),輸入關(guān)鍵詞,點(diǎn)擊搜索后會(huì )手動(dòng)鏈接到關(guān)鍵詞的新聞界面,想要獲取這個(gè)頁(yè)面的url,有兩種思路,本文提供三種方式。......
  樂(lè )亦亦樂(lè )的博客
  08-15
  
  2901
  python爬蟲(chóng)——?;ňW(wǎng)
  爬取?;ňW(wǎng)圖片?;ňW(wǎng)步入網(wǎng)站,我們會(huì )發(fā)覺(jué)許多圖片,這些圖片就是我們要爬取的內容。 2.對網(wǎng)頁(yè)進(jìn)行剖析,按F12打開(kāi)開(kāi)發(fā)著(zhù)工具(本文使用谷歌瀏覽器)。我們發(fā)覺(jué)每位圖片都對應著(zhù)一個(gè)路徑。 3.我們訪(fǎng)問(wèn)一下img標簽的src路徑。正是圖片的路徑,能夠獲取到圖片。因此我們須要獲取網(wǎng)頁(yè)中img標簽下所有的s......
  一朵凋謝的菊花
  03-05
  
  386
  Python定向爬蟲(chóng)——校園論壇貼子信息
  寫(xiě)這個(gè)小爬蟲(chóng)主要是為了爬校園峰會(huì )上的實(shí)習信息,主要采用了Requests庫
  weixin_34268579的博客
  12-17
  
  4301
  詳解怎樣用爬蟲(chóng)批量抓取百度搜索多個(gè)關(guān)鍵字數據
  2019獨角獸企業(yè)重金急聘Python工程師標準>>>...
  weixin_33852020的博客
  06-23
  
  313
  如何通過(guò)關(guān)鍵詞匹配統計其出現的頻度
  最近寫(xiě)的一個(gè)perl程序,通過(guò)關(guān)鍵詞匹配統計其出現的頻度,讓人感受到perl正則表達式的強悍,程序如下:#!/usr/bin/perluse strict;my (%hash,%hash1,@array);while(<>){s/\r\n//;my $line;if(/-(.+?)【(.+?)】【(.+?)】(定單積壓)/...
  W&J
  02-10
  
  9415
  python 實(shí)現關(guān)鍵詞提取
  Python實(shí)現關(guān)鍵詞提取這篇文章只介紹了Python中關(guān)鍵詞提取的實(shí)現。關(guān)鍵詞提取的幾個(gè)方式:1.textrank2.tf-idf3.LDA,其中textrank和tf-idf在jieba中都有封裝好的函數,調用上去非常簡(jiǎn)單方便。常用的自然語(yǔ)言處理的庫還有nltk,gensim,sklearn中也有封裝好的函數可以進(jìn)行SVD分解和LDA等。LDA也有人分裝好了庫,直接pipinsta......
  zzz1048506792的博客
  08-08
  
  992
  python爬蟲(chóng)爬取政府網(wǎng)站關(guān)鍵字
  **功能介紹**獲取政府招標內容包含以下關(guān)鍵詞,就提取該標書(shū)內容保存(本地文本)1,汽車(chē)采購2、汽車(chē)租賃3、公務(wù)車(chē)4、公務(wù)車(chē)租賃5、汽車(chē)合同供貨6、汽車(chē)7、租賃爬取網(wǎng)站作者:speed_zombie版本信息:python v3.7.4運行......
  最新陌陌小程序源碼
  panfengzjz的博客
  01-01
  
  442
  PYTHON 實(shí)現 NBA 賽程查詢(xún)工具(二)—— 網(wǎng)絡(luò )爬蟲(chóng)
  前言:第一篇博客,記錄一下近來(lái)的一點(diǎn)點(diǎn)小成果。一切的學(xué)習都從興趣開(kāi)始。最近突然想學(xué)習一下pyqt和python的網(wǎng)路爬蟲(chóng)知識,于是就自己找了一個(gè)課題做了上去。因為我剛好是個(gè) NBA歌迷,就想到了通過(guò)網(wǎng)路爬蟲(chóng)來(lái)抓取大賽結果,方便本地進(jìn)行查找的項目。這個(gè)項目總共分為三步:1. 界面制做:選擇對應的球員,顯示球員圖標和賽事結果2.網(wǎng)絡(luò )爬蟲(chóng):訪(fǎng)問(wèn)特定網(wǎng)頁(yè),查找賽季至......
  微信小程序源碼-合集1
  panfengzjz的博客
  05-25
  
  4475
  PYTHON 中 global 關(guān)鍵字的用法
  之前寫(xiě)函數的時(shí)侯,由于傳參實(shí)在太多,于是將某個(gè)字段定義為全局變量,在函數中直接使用??墒窃谑褂眠^(guò)程中發(fā)覺(jué)會(huì )報錯,原因是在另一個(gè)調用函數中,該全局變量的類(lèi)型被更改了,那那邊剛好徹底用幾個(gè)事例來(lái)理清一下python中g(shù)lobal關(guān)鍵字可以起到的作用。案例一:先說(shuō)我見(jiàn)到的問(wèn)題(并沒(méi)有貼上源代碼,下面的事例是自己具象出一個(gè)便捷你們理解的小case)程序大約就是這樣#error ca......
  panfengzjz的博客
  04-29
  
  1萬(wàn)+
  利用OpenCV-python進(jìn)行直線(xiàn)測量
  最近須要借助攝像頭對細小的偏斜做矯治,由于之前的界面工具是用PyQT所寫(xiě),在當前的工具中加入攝像頭矯治程序,也準備用python直接完成。OpenCV簡(jiǎn)介:Python處理圖象有OpenCV庫。OpenCV可以運行在Linux,windows,macOS上,由C函數和C++類(lèi)構成,用于實(shí)現計算機圖象、視頻的編輯,應用于圖象辨識、運動(dòng)跟蹤、機器視覺(jué)等領(lǐng)域。Open......
  bensonrachel的博客
  05-18
  
  1728
  python-簡(jiǎn)單爬蟲(chóng)及相關(guān)數據處理(統計出文章出現次數最多的50個(gè)詞)
  這次爬取了笑傲江湖這本小說(shuō);網(wǎng)站是:'#039;+str(696+i)+'.html'考慮到每一章的網(wǎng)址如上遞增,所以使用一個(gè)循環(huán)來(lái)遍歷網(wǎng)址進(jìn)行爬取。然后找出文章的標簽:如圖:是<p>,</p>所以:代碼如下:然后爬取以后,存在文檔里,進(jìn)行處理。我用的是nlpir的動(dòng)詞系統:作了處理以后,把所有詞存進(jìn)一list上面。之......
  glumpydog的專(zhuān)欄
  05-14
  
  5880
  python 抓取天涯貼子內容并保存
  手把手教你借助Python下載天涯熱門(mén)貼子為txt文檔 作者:大捷龍csdn : **剖析:天涯的貼子下載可以分為以下幾個(gè)步驟自動(dòng)傳入一個(gè)貼子首頁(yè)的地址打開(kāi)文本提取貼子標題獲取貼子的最大頁(yè)數遍歷每一頁(yè),獲得每條回復的是否是樓主、作者愛(ài)稱(chēng)、回復時(shí)間。寫(xiě)入看文本關(guān)掉文本預備:Python的文件操作: 一、...
  cjy1041403539的博客
  04-14
  
  1961
  python微博爬蟲(chóng)——使用selenium爬取關(guān)鍵詞下超話(huà)內容
  最近微博手機端的頁(yè)面發(fā)生了些微的變化,導致了我之前的兩篇文章微博任意關(guān)鍵詞爬蟲(chóng)——使用selenium模擬瀏覽器和來(lái)!用python爬一爬“不知知網(wǎng)翟博士”的微博超話(huà)中的代碼出現了一些報錯情況,這里來(lái)更改一下歡迎關(guān)注公眾號:老白和他的爬蟲(chóng)1.微博手機端出現的變化爬取手機端的微博益處在于能否爬取比網(wǎng)頁(yè)端更多的數據,因為網(wǎng)頁(yè)端微博內容通常限定在50頁(yè),數據量不夠大,所以選擇爬取手機端,這樣可......
  scx2006114的博客
  08-03
  
  5441
  python爬蟲(chóng)之爬取簡(jiǎn)書(shū)中的小文章標題
  學(xué)習了三個(gè)星期的python基礎句型,對python句型有了一個(gè)基本的了解,然后想繼續深入學(xué)習,但不喜歡每晚啃書(shū)本,太無(wú)趣了,只有實(shí)戰才是練兵的最好療效。聽(tīng)說(shuō)爬蟲(chóng)技術(shù)還是比較好玩的,就搞爬蟲(chóng),但找了很多資料沒(méi)有找到合適的資料,最后才找到傳說(shuō)中的合適爬蟲(chóng)初學(xué)者的書(shū)籍《Python3網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)實(shí)戰,崔慶才著(zhù)》(文末附書(shū)本下載鏈接),學(xué)習了一天,終于完整搞出了自己的第一爬蟲(chóng),哈哈~。......
  zhyh1435589631的專(zhuān)欄
  05-03
  
  8951
  python 爬蟲(chóng)實(shí)戰 抓取中學(xué)bbs相關(guān)藍籌股的回帖信息
  1. 前言之前也由于感興趣, 寫(xiě)過(guò)一個(gè)抓取桌面天空上面喜歡的動(dòng)畫(huà)墻紙的爬蟲(chóng)代碼。這三天忽然聽(tīng)到有人寫(xiě)了那么一篇文章: 爬取易迅本周熱銷(xiāo)商品基本信息存入MySQL 感覺(jué)挺有趣的, 正好臨近找工作的季節, 就想著(zhù)能不能寫(xiě)個(gè)爬蟲(chóng), 把俺們中學(xué)bbs前面相關(guān)的藍籌股上面的回帖信息給記錄出來(lái)。2. 項目剖析首先我們打開(kāi)我們的目標網(wǎng)頁(yè) 結...
  jiangfullll的專(zhuān)欄
  05-08
  
  1991
  python爬蟲(chóng) 根據關(guān)鍵字在新浪網(wǎng)站查詢(xún)跟關(guān)鍵字有關(guān)的新聞條數(按照時(shí)間查詢(xún))
  # -*- coding: utf-8 -*-"""Created on Thu May 8 09:14:13 2014@author: lifeix"""import urllib2import refrom datetime import datetimedef craw1(keyword_name, startYear): a = keyword_name
  c350577169的博客
  05-22
  
  3萬(wàn)+
  python爬蟲(chóng)--如何爬取翻頁(yè)url不變的網(wǎng)站
  之前準備爬取一個(gè)圖片資源網(wǎng)站,但是在翻頁(yè)時(shí)發(fā)覺(jué)它的url并沒(méi)有改變,無(wú)法簡(jiǎn)單的通過(guò)request.get()訪(fǎng)問(wèn)其他頁(yè)面。據搜索資料,了解到這種網(wǎng)站是通過(guò)ajax動(dòng)態(tài)加載技術(shù)實(shí)現。即可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對網(wǎng)頁(yè)的某部份進(jìn)行更新。這樣的設置無(wú)疑給早期爬蟲(chóng)菜鳥(niǎo)制造了一些困難。1、什么是ajax幾個(gè)常見(jiàn)的用到ajax的場(chǎng)景。比如你在逛知乎,你沒(méi)有刷新過(guò)網(wǎng)頁(yè),但是你卻能看到你關(guān)注的用戶(hù)或則話(huà)題......
  iteye_17286的博客
  11-20
  
  1071
  如何從文件中檢索關(guān)鍵字出現的次數
  首先得到文件的完整路徑,然后從流中讀取每位字符,如果讀出的字符和關(guān)鍵字的第一個(gè)字符相同,則根據關(guān)鍵字寬度讀取相同個(gè)數的字符,分別判定是否相同,若有一個(gè)不相同則break,否則計數器count++,最后count的個(gè)數即是關(guān)鍵字在文件中出下的次數......
  weixin_34237596的博客
  05-16
  
  280
  [Python爬蟲(chóng)]新聞網(wǎng)頁(yè)爬蟲(chóng)+jieba分詞+關(guān)鍵詞搜索排序
  前言近來(lái)做了一個(gè)python3作業(yè)題目,涉及到:網(wǎng)頁(yè)爬蟲(chóng)網(wǎng)頁(yè)英文文字提取構建文字索引關(guān)鍵詞搜索涉及到的庫有:爬蟲(chóng)庫:requests解析庫:xpath正則:re分詞庫:jieba...放出代碼便捷你們快速參考,實(shí)現一個(gè)小demo。題目描述搜索引擎的設計與實(shí)現輸入:騰訊體育的頁(yè)面鏈接,以列表的形式作為輸入,數量不定,例如:["
  純潔的笑容
  03-04
  
  14萬(wàn)+
  和黑客斗爭的 6 天!
  互聯(lián)網(wǎng)公司工作爬蟲(chóng)論壇,很難避開(kāi)不和黑客們打交道,我呆過(guò)的兩家互聯(lián)網(wǎng)公司,幾乎每月每晚每分鐘都有黑客在公司網(wǎng)站上掃描。有的是找尋 Sql 注入的缺口爬蟲(chóng)論壇,有的是找尋線(xiàn)上服務(wù)器可能存在的漏洞,大部分都...
  Blessy_Zhu的博客
  03-20
  
  1萬(wàn)+
  Python爬蟲(chóng)之陌陌數據爬?。ㄊ?br />   原創(chuàng )不易,轉載前請標明博主的鏈接地址:Blessy_Zhu本次代碼的環(huán)境:運行平臺:WindowsPython版本:Python3.xIDE:PyCharm一、前言陌陌作為我們日常交流的軟件,越來(lái)越深入到我們的生活。但是,隨著(zhù)陌陌好的數目的降低,實(shí)際上真正可以聯(lián)系的知心人卻越來(lái)越少了。那么,怎么樣能更清......
  07-26
  
  2萬(wàn)+
  使用網(wǎng)頁(yè)爬蟲(chóng)(高級搜索功能)搜集含關(guān)鍵詞新浪微博數據
  作為國外社交媒體的領(lǐng)航者,很遺憾,新浪微博沒(méi)有提供以“關(guān)鍵字+時(shí)間+區域”方式獲取的官方API。當我們聽(tīng)到美國科研成果都是基于某關(guān)鍵字獲得的微博,心中不免涼了一大截,或者轉戰臉書(shū)。再次建議微博能更開(kāi)放些!慶幸的是,新浪提供了中級搜索功能。找不到?這個(gè)功能須要用戶(hù)登入能夠使用……沒(méi)關(guān)系,下面將詳盡述說(shuō)怎樣在無(wú)須登陸的情況下,獲取“關(guān)鍵字+時(shí)間+區域”的新浪微博。...
  路人甲Java
  03-25
  
  9萬(wàn)+
  面試阿里p7,被按在地上磨擦,鬼曉得我經(jīng)歷了哪些?
  面試阿里p7被問(wèn)到的問(wèn)題(當時(shí)我只曉得第一個(gè)):@Conditional是做哪些的?@Conditional多個(gè)條件是哪些邏輯關(guān)系?條件判定在什么時(shí)候執... 查看全部

  ANONYMOUSLYCN的專(zhuān)欄
  03-03
  
  9259
  python 爬取知乎某一關(guān)鍵字數據
  python爬取知乎某一關(guān)鍵字數據序言和之前爬取Instagram數據一樣,那位朋友還須要爬取知乎前面關(guān)于該影片的評論。沒(méi)想到這是個(gè)坑洞啊??雌饋?lái)很簡(jiǎn)單的一個(gè)事情就顯得很復雜了。知乎假如說(shuō),有哪些事情是最坑的,我覺(jué)得就是在知乎前面討論怎樣抓取知乎的數據了。在2018年的時(shí)侯,知乎又進(jìn)行了一次改版啊。真是一個(gè)坑洞。網(wǎng)上的代碼幾乎都不能使用了。只有這兒!的一篇文章還可以模擬登錄一......
  Someone&的博客
  05-31
  
  5069
  輸入關(guān)鍵字的爬蟲(chóng)方式(運行環(huán)境python3)
  前段時(shí)間,寫(xiě)了爬蟲(chóng),在新浪搜索主頁(yè)面中,實(shí)現了輸入關(guān)鍵詞,爬取關(guān)鍵詞相關(guān)的新聞的標題、發(fā)布時(shí)間、url、關(guān)鍵字及內容。并依據內容,提取了摘要和估算了相似度。下面簡(jiǎn)述自己的思路并將代碼的githup鏈接給出:1、獲取關(guān)鍵詞新聞頁(yè)面的url在新浪搜索主頁(yè),輸入關(guān)鍵詞,點(diǎn)擊搜索后會(huì )手動(dòng)鏈接到關(guān)鍵詞的新聞界面,想要獲取這個(gè)頁(yè)面的url,有兩種思路,本文提供三種方式。......
  樂(lè )亦亦樂(lè )的博客
  08-15
  
  2901
  python爬蟲(chóng)——?;ňW(wǎng)
  爬取?;ňW(wǎng)圖片?;ňW(wǎng)步入網(wǎng)站,我們會(huì )發(fā)覺(jué)許多圖片,這些圖片就是我們要爬取的內容。 2.對網(wǎng)頁(yè)進(jìn)行剖析,按F12打開(kāi)開(kāi)發(fā)著(zhù)工具(本文使用谷歌瀏覽器)。我們發(fā)覺(jué)每位圖片都對應著(zhù)一個(gè)路徑。 3.我們訪(fǎng)問(wèn)一下img標簽的src路徑。正是圖片的路徑,能夠獲取到圖片。因此我們須要獲取網(wǎng)頁(yè)中img標簽下所有的s......
  一朵凋謝的菊花
  03-05
  
  386
  Python定向爬蟲(chóng)——校園論壇貼子信息
  寫(xiě)這個(gè)小爬蟲(chóng)主要是為了爬校園峰會(huì )上的實(shí)習信息,主要采用了Requests庫
  weixin_34268579的博客
  12-17
  
  4301
  詳解怎樣用爬蟲(chóng)批量抓取百度搜索多個(gè)關(guān)鍵字數據
  2019獨角獸企業(yè)重金急聘Python工程師標準>>>...
  weixin_33852020的博客
  06-23
  
  313
  如何通過(guò)關(guān)鍵詞匹配統計其出現的頻度
  最近寫(xiě)的一個(gè)perl程序,通過(guò)關(guān)鍵詞匹配統計其出現的頻度,讓人感受到perl正則表達式的強悍,程序如下:#!/usr/bin/perluse strict;my (%hash,%hash1,@array);while(<>){s/\r\n//;my $line;if(/-(.+?)【(.+?)】【(.+?)】(定單積壓)/...
  W&J
  02-10
  
  9415
  python 實(shí)現關(guān)鍵詞提取
  Python實(shí)現關(guān)鍵詞提取這篇文章只介紹了Python中關(guān)鍵詞提取的實(shí)現。關(guān)鍵詞提取的幾個(gè)方式:1.textrank2.tf-idf3.LDA,其中textrank和tf-idf在jieba中都有封裝好的函數,調用上去非常簡(jiǎn)單方便。常用的自然語(yǔ)言處理的庫還有nltk,gensim,sklearn中也有封裝好的函數可以進(jìn)行SVD分解和LDA等。LDA也有人分裝好了庫,直接pipinsta......
  zzz1048506792的博客
  08-08
  
  992
  python爬蟲(chóng)爬取政府網(wǎng)站關(guān)鍵字
  **功能介紹**獲取政府招標內容包含以下關(guān)鍵詞,就提取該標書(shū)內容保存(本地文本)1,汽車(chē)采購2、汽車(chē)租賃3、公務(wù)車(chē)4、公務(wù)車(chē)租賃5、汽車(chē)合同供貨6、汽車(chē)7、租賃爬取網(wǎng)站作者:speed_zombie版本信息:python v3.7.4運行......
  最新陌陌小程序源碼
  panfengzjz的博客
  01-01
  
  442
  PYTHON 實(shí)現 NBA 賽程查詢(xún)工具(二)—— 網(wǎng)絡(luò )爬蟲(chóng)
  前言:第一篇博客,記錄一下近來(lái)的一點(diǎn)點(diǎn)小成果。一切的學(xué)習都從興趣開(kāi)始。最近突然想學(xué)習一下pyqt和python的網(wǎng)路爬蟲(chóng)知識,于是就自己找了一個(gè)課題做了上去。因為我剛好是個(gè) NBA歌迷,就想到了通過(guò)網(wǎng)路爬蟲(chóng)來(lái)抓取大賽結果,方便本地進(jìn)行查找的項目。這個(gè)項目總共分為三步:1. 界面制做:選擇對應的球員,顯示球員圖標和賽事結果2.網(wǎng)絡(luò )爬蟲(chóng):訪(fǎng)問(wèn)特定網(wǎng)頁(yè),查找賽季至......
  微信小程序源碼-合集1
  panfengzjz的博客
  05-25
  
  4475
  PYTHON 中 global 關(guān)鍵字的用法
  之前寫(xiě)函數的時(shí)侯,由于傳參實(shí)在太多,于是將某個(gè)字段定義為全局變量,在函數中直接使用??墒窃谑褂眠^(guò)程中發(fā)覺(jué)會(huì )報錯,原因是在另一個(gè)調用函數中,該全局變量的類(lèi)型被更改了,那那邊剛好徹底用幾個(gè)事例來(lái)理清一下python中g(shù)lobal關(guān)鍵字可以起到的作用。案例一:先說(shuō)我見(jiàn)到的問(wèn)題(并沒(méi)有貼上源代碼,下面的事例是自己具象出一個(gè)便捷你們理解的小case)程序大約就是這樣#error ca......
  panfengzjz的博客
  04-29
  
  1萬(wàn)+
  利用OpenCV-python進(jìn)行直線(xiàn)測量
  最近須要借助攝像頭對細小的偏斜做矯治,由于之前的界面工具是用PyQT所寫(xiě),在當前的工具中加入攝像頭矯治程序,也準備用python直接完成。OpenCV簡(jiǎn)介:Python處理圖象有OpenCV庫。OpenCV可以運行在Linux,windows,macOS上,由C函數和C++類(lèi)構成,用于實(shí)現計算機圖象、視頻的編輯,應用于圖象辨識、運動(dòng)跟蹤、機器視覺(jué)等領(lǐng)域。Open......
  bensonrachel的博客
  05-18
  
  1728
  python-簡(jiǎn)單爬蟲(chóng)及相關(guān)數據處理(統計出文章出現次數最多的50個(gè)詞)
  這次爬取了笑傲江湖這本小說(shuō);網(wǎng)站是:'#039;+str(696+i)+'.html'考慮到每一章的網(wǎng)址如上遞增,所以使用一個(gè)循環(huán)來(lái)遍歷網(wǎng)址進(jìn)行爬取。然后找出文章的標簽:如圖:是<p>,</p>所以:代碼如下:然后爬取以后,存在文檔里,進(jìn)行處理。我用的是nlpir的動(dòng)詞系統:作了處理以后,把所有詞存進(jìn)一list上面。之......
  glumpydog的專(zhuān)欄
  05-14
  
  5880
  python 抓取天涯貼子內容并保存
  手把手教你借助Python下載天涯熱門(mén)貼子為txt文檔 作者:大捷龍csdn : **剖析:天涯的貼子下載可以分為以下幾個(gè)步驟自動(dòng)傳入一個(gè)貼子首頁(yè)的地址打開(kāi)文本提取貼子標題獲取貼子的最大頁(yè)數遍歷每一頁(yè),獲得每條回復的是否是樓主、作者愛(ài)稱(chēng)、回復時(shí)間。寫(xiě)入看文本關(guān)掉文本預備:Python的文件操作: 一、...
  cjy1041403539的博客
  04-14
  
  1961
  python微博爬蟲(chóng)——使用selenium爬取關(guān)鍵詞下超話(huà)內容
  最近微博手機端的頁(yè)面發(fā)生了些微的變化,導致了我之前的兩篇文章微博任意關(guān)鍵詞爬蟲(chóng)——使用selenium模擬瀏覽器和來(lái)!用python爬一爬“不知知網(wǎng)翟博士”的微博超話(huà)中的代碼出現了一些報錯情況,這里來(lái)更改一下歡迎關(guān)注公眾號:老白和他的爬蟲(chóng)1.微博手機端出現的變化爬取手機端的微博益處在于能否爬取比網(wǎng)頁(yè)端更多的數據,因為網(wǎng)頁(yè)端微博內容通常限定在50頁(yè),數據量不夠大,所以選擇爬取手機端,這樣可......
  scx2006114的博客
  08-03
  
  5441
  python爬蟲(chóng)之爬取簡(jiǎn)書(shū)中的小文章標題
  學(xué)習了三個(gè)星期的python基礎句型,對python句型有了一個(gè)基本的了解,然后想繼續深入學(xué)習,但不喜歡每晚啃書(shū)本,太無(wú)趣了,只有實(shí)戰才是練兵的最好療效。聽(tīng)說(shuō)爬蟲(chóng)技術(shù)還是比較好玩的,就搞爬蟲(chóng),但找了很多資料沒(méi)有找到合適的資料,最后才找到傳說(shuō)中的合適爬蟲(chóng)初學(xué)者的書(shū)籍《Python3網(wǎng)絡(luò )爬蟲(chóng)開(kāi)發(fā)實(shí)戰,崔慶才著(zhù)》(文末附書(shū)本下載鏈接),學(xué)習了一天,終于完整搞出了自己的第一爬蟲(chóng),哈哈~。......
  zhyh1435589631的專(zhuān)欄
  05-03
  
  8951
  python 爬蟲(chóng)實(shí)戰 抓取中學(xué)bbs相關(guān)藍籌股的回帖信息
  1. 前言之前也由于感興趣, 寫(xiě)過(guò)一個(gè)抓取桌面天空上面喜歡的動(dòng)畫(huà)墻紙的爬蟲(chóng)代碼。這三天忽然聽(tīng)到有人寫(xiě)了那么一篇文章: 爬取易迅本周熱銷(xiāo)商品基本信息存入MySQL 感覺(jué)挺有趣的, 正好臨近找工作的季節, 就想著(zhù)能不能寫(xiě)個(gè)爬蟲(chóng), 把俺們中學(xué)bbs前面相關(guān)的藍籌股上面的回帖信息給記錄出來(lái)。2. 項目剖析首先我們打開(kāi)我們的目標網(wǎng)頁(yè) 結...
  jiangfullll的專(zhuān)欄
  05-08
  
  1991
  python爬蟲(chóng) 根據關(guān)鍵字在新浪網(wǎng)站查詢(xún)跟關(guān)鍵字有關(guān)的新聞條數(按照時(shí)間查詢(xún))
  # -*- coding: utf-8 -*-"""Created on Thu May 8 09:14:13 2014@author: lifeix"""import urllib2import refrom datetime import datetimedef craw1(keyword_name, startYear): a = keyword_name
  c350577169的博客
  05-22
  
  3萬(wàn)+
  python爬蟲(chóng)--如何爬取翻頁(yè)url不變的網(wǎng)站
  之前準備爬取一個(gè)圖片資源網(wǎng)站,但是在翻頁(yè)時(shí)發(fā)覺(jué)它的url并沒(méi)有改變,無(wú)法簡(jiǎn)單的通過(guò)request.get()訪(fǎng)問(wèn)其他頁(yè)面。據搜索資料,了解到這種網(wǎng)站是通過(guò)ajax動(dòng)態(tài)加載技術(shù)實(shí)現。即可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對網(wǎng)頁(yè)的某部份進(jìn)行更新。這樣的設置無(wú)疑給早期爬蟲(chóng)菜鳥(niǎo)制造了一些困難。1、什么是ajax幾個(gè)常見(jiàn)的用到ajax的場(chǎng)景。比如你在逛知乎,你沒(méi)有刷新過(guò)網(wǎng)頁(yè),但是你卻能看到你關(guān)注的用戶(hù)或則話(huà)題......
  iteye_17286的博客
  11-20
  
  1071
  如何從文件中檢索關(guān)鍵字出現的次數
  首先得到文件的完整路徑,然后從流中讀取每位字符,如果讀出的字符和關(guān)鍵字的第一個(gè)字符相同,則根據關(guān)鍵字寬度讀取相同個(gè)數的字符,分別判定是否相同,若有一個(gè)不相同則break,否則計數器count++,最后count的個(gè)數即是關(guān)鍵字在文件中出下的次數......
  weixin_34237596的博客
  05-16
  
  280
  [Python爬蟲(chóng)]新聞網(wǎng)頁(yè)爬蟲(chóng)+jieba分詞+關(guān)鍵詞搜索排序
  前言近來(lái)做了一個(gè)python3作業(yè)題目,涉及到:網(wǎng)頁(yè)爬蟲(chóng)網(wǎng)頁(yè)英文文字提取構建文字索引關(guān)鍵詞搜索涉及到的庫有:爬蟲(chóng)庫:requests解析庫:xpath正則:re分詞庫:jieba...放出代碼便捷你們快速參考,實(shí)現一個(gè)小demo。題目描述搜索引擎的設計與實(shí)現輸入:騰訊體育的頁(yè)面鏈接,以列表的形式作為輸入,數量不定,例如:["
  純潔的笑容
  03-04
  
  14萬(wàn)+
  和黑客斗爭的 6 天!
  互聯(lián)網(wǎng)公司工作爬蟲(chóng)論壇,很難避開(kāi)不和黑客們打交道,我呆過(guò)的兩家互聯(lián)網(wǎng)公司,幾乎每月每晚每分鐘都有黑客在公司網(wǎng)站上掃描。有的是找尋 Sql 注入的缺口爬蟲(chóng)論壇,有的是找尋線(xiàn)上服務(wù)器可能存在的漏洞,大部分都...
  Blessy_Zhu的博客
  03-20
  
  1萬(wàn)+
  Python爬蟲(chóng)之陌陌數據爬?。ㄊ?br />   原創(chuàng )不易,轉載前請標明博主的鏈接地址:Blessy_Zhu本次代碼的環(huán)境:運行平臺:WindowsPython版本:Python3.xIDE:PyCharm一、前言陌陌作為我們日常交流的軟件,越來(lái)越深入到我們的生活。但是,隨著(zhù)陌陌好的數目的降低,實(shí)際上真正可以聯(lián)系的知心人卻越來(lái)越少了。那么,怎么樣能更清......
  07-26
  
  2萬(wàn)+
  使用網(wǎng)頁(yè)爬蟲(chóng)(高級搜索功能)搜集含關(guān)鍵詞新浪微博數據
  作為國外社交媒體的領(lǐng)航者,很遺憾,新浪微博沒(méi)有提供以“關(guān)鍵字+時(shí)間+區域”方式獲取的官方API。當我們聽(tīng)到美國科研成果都是基于某關(guān)鍵字獲得的微博,心中不免涼了一大截,或者轉戰臉書(shū)。再次建議微博能更開(kāi)放些!慶幸的是,新浪提供了中級搜索功能。找不到?這個(gè)功能須要用戶(hù)登入能夠使用……沒(méi)關(guān)系,下面將詳盡述說(shuō)怎樣在無(wú)須登陸的情況下,獲取“關(guān)鍵字+時(shí)間+區域”的新浪微博。...
  路人甲Java
  03-25
  
  9萬(wàn)+
  面試阿里p7,被按在地上磨擦,鬼曉得我經(jīng)歷了哪些?
  面試阿里p7被問(wèn)到的問(wèn)題(當時(shí)我只曉得第一個(gè)):@Conditional是做哪些的?@Conditional多個(gè)條件是哪些邏輯關(guān)系?條件判定在什么時(shí)候執...

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久