久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

如何用Python,C#等語言去實(shí)現(xiàn)抓取靜態(tài)網(wǎng)頁+抓取動態(tài)網(wǎng)頁+模擬登陸網(wǎng)站

 franklinfj 2013-11-23

如何用Python,,C#等語言去實(shí)現(xiàn)抓取靜態(tài)網(wǎng)頁+抓取動態(tài)網(wǎng)頁+模擬登陸網(wǎng)站

背景

在網(wǎng)絡(luò),網(wǎng)頁,,網(wǎng)站處理方面,,很多人都遇到過,,想要用某種語言(Python,C#等),,去實(shí)現(xiàn)一些需求,,常見的有這幾大類:

  • 想要從某靜態(tài)網(wǎng)頁中,提取某些內(nèi)容
  • 想要抓取某些動態(tài)網(wǎng)頁中的某些內(nèi)容
  • 想要模擬登陸某個網(wǎng)站

對于這類需求,,其基本的背后邏輯,,都是相同的。

下面就是來介紹一下,,如何實(shí)現(xiàn)這些功能,。

搞懂訪問網(wǎng)頁所涉及的http相關(guān)的邏輯知識

先要搞懂對應(yīng)的,訪問url地址的背后的邏輯:

需要你提供哪些內(nèi)容:

  • url
  • headers:部分可選,,部分必須
  • cookies(可選)
  • post data
    • 當(dāng)是POST方法時(shí),,才需要

然后獲得什么樣的內(nèi)容:

  • html源碼(或其他的,json字符串,,圖片的數(shù)據(jù)等等)
  • cookie(可能有):對于后續(xù)的訪問其他的url,,可能需要提供此處所返回的(新的)cookie

詳細(xì)解釋,可參考:

【整理】關(guān)于抓取網(wǎng)頁,,分析網(wǎng)頁內(nèi)容,,模擬登陸網(wǎng)站的邏輯/流程和注意事項(xiàng)

提示:

1.html的charset編碼

關(guān)于html網(wǎng)頁的編碼方面的背景知識,最好再去看看:

【整理】關(guān)于HTML網(wǎng)頁源碼的字符編碼(charset)格式(GB2312,,GBK,,UTF-8,ISO8859-1等)的解釋

搞懂你所要處理的網(wǎng)頁的執(zhí)行的邏輯過程

簡單的說就是,,你自己所要處理的某個url地址,,需要提供哪些值,然后才能獲得你所需要的值,。

先把你自己關(guān)心的這些邏輯搞懂,,才能談到后續(xù)用代碼實(shí)現(xiàn)出來。

如果此邏輯過程很簡單,,那么你不用工具去分析,,自己看代碼,能自己分析出來,,也是可以的,。

但是此過程往往都很復(fù)雜,所以,,一般都需要使用對應(yīng)的開發(fā)人員工具去分析,。

比如用IE9的F12去捕獲對應(yīng)的執(zhí)行過程,然后從中分析出你所需要關(guān)心的某些網(wǎng)頁的執(zhí)行邏輯的,。

詳細(xì)解釋和演示參見:

【教程】手把手教你如何利用工具(IE9的F12)去分析模擬登陸網(wǎng)站(百度首頁)的內(nèi)部邏輯過程

提示:

1.其他各種的分析工具

對于IE9的F12,等不熟悉的話,, 可以先去看看:

【總結(jié)】瀏覽器中的開發(fā)人員工具(IE9的F12和Chrome的Ctrl+Shift+I)-網(wǎng)頁分析的利器

對于此部分內(nèi)容,,另外還有個帖子可參考:

【整理】各種瀏覽器中的開發(fā)人員工具Developer Tools:IE9的F12,Chrome的Ctrl+Shift+J,,F(xiàn)irefox的Firebug

2. 復(fù)雜的參數(shù)值的分析

在用工具分析的過程中,,你會發(fā)現(xiàn)有些所要分析的值,是相對比較復(fù)雜的,,無法直接就獲得,,所以就需要去調(diào)試分析。

關(guān)于如何分析復(fù)雜的參數(shù)值是如何獲得的,,可以參考:

【教程】如何利用IE9的F12去分析網(wǎng)站登陸過程中的復(fù)雜的(參數(shù),,cookie等)值(的來源)
3.另外一個例子

后來又寫了個例子,用于分析如何從songtaste的播放頁面地址中找到歌曲的真實(shí)地址:

【教程】如何用IE9的F12去抓取某首Songtaste歌曲的真實(shí)地址

用某種語言去實(shí)現(xiàn)上述的邏輯

等把你要處理的所有的邏輯過程和執(zhí)行順序,,都搞懂了之后,,然后才是用某種語言去實(shí)現(xiàn)對應(yīng)的邏輯過程。

提示:

不過,,關(guān)于具體在代碼中實(shí)現(xiàn)對應(yīng)的邏輯,,有一些通用的邏輯:

1. url地址的編碼和解碼

其中,,如果涉及到,,url地址的解碼和編碼的話,可以參考:

【整理】關(guān)于http(GET或POST)請求中的url地址的編碼(encode)和解碼(decode)

2.關(guān)于headers,,cookie,,post data等如何處理

雖然是為動態(tài)網(wǎng)頁抓取所寫,但是基本的邏輯都是一樣的:

【整理】網(wǎng)頁抓取,,模擬登陸,,抓取動態(tài)網(wǎng)頁內(nèi)容等過程中,所涉及的Headers信息,,Cookie信息,,POST數(shù)據(jù)的處理邏輯

3.關(guān)于提取網(wǎng)頁內(nèi)容的方法

對于簡單的html網(wǎng)頁中的內(nèi)容,當(dāng)然是可以使用正則表達(dá)式的,。

但是對于復(fù)雜的內(nèi)容提取,,還是建議用第三方的特定的庫去處理:

【整理】關(guān)于用正則表達(dá)式處理html代碼方面的建議

其中:

Python:相關(guān)用于解析html的庫,推薦用:

【總結(jié)】Python的第三方庫BeautifulSoup的使用心得

關(guān)于代碼示例演示方面,,根據(jù)之前的三大類需求,,有三大類系列的教程:

想要從某靜態(tài)網(wǎng)頁中,提取某些內(nèi)容

Python版

【教程】抓取網(wǎng)并提取網(wǎng)頁中所需要的信息 之 Python版

C#版

【教程】抓取網(wǎng)并提取網(wǎng)頁中所需要的信息 之 C#版

想要抓取某些動態(tài)網(wǎng)頁中的某些內(nèi)容

此處,,目前已有的教程,,是從頭開始解釋整個過程的:

【教程】如何抓取動態(tài)網(wǎng)頁內(nèi)容

然后解釋之前所介紹的,如何用工具分析的:

【教程】以抓取網(wǎng)易博客帖子中的最近讀者信息為例,,手把手教你如何抓取動態(tài)網(wǎng)頁中的內(nèi)容

關(guān)于代碼實(shí)現(xiàn),,等以后會更新的,。

但是,其實(shí),,相關(guān)的代碼,,去參考別的,靜態(tài)網(wǎng)頁內(nèi)容提取,,模擬登陸方面的代碼,,也都是可以的。

想要模擬登陸某個網(wǎng)站

Python版

【教程】模擬登陸網(wǎng)站 之 Python版(內(nèi)含兩種版本的完整的可運(yùn)行的代碼)

C#版

【教程】模擬登陸網(wǎng)站 之 C#版(內(nèi)含兩種版本的完整的可運(yùn)行的代碼)

總結(jié)

總之,,做任何事情,,都是先要搞懂邏輯,然后才是如何實(shí)現(xiàn),。

希望這里把邏輯和實(shí)現(xiàn),,都解釋清楚了。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多