python通用內(nèi)容提鹊鼍酢(1)--初探

爬蟲的工作流程大致如下茴肥,

下載html --> 提取內(nèi)容與url --> 調(diào)度 --> 繼續(xù)下載...

今日打算談談我對于提取內(nèi)容與url的看法。

傳統(tǒng)方案

xpath,××soup,××query之類的庫荡灾,實現(xiàn)簡單瓤狐,而且可以直接從瀏覽器中拷貝路徑。其實就是默認html中的元素都有嚴格規(guī)范的標簽批幌。(不過很多html都寫得很隨意础锐,拷貝的xpath是經(jīng)過瀏覽器容錯修改后的,到手后常常需要繼續(xù)調(diào)試)

這種做法和瀏覽器解析網(wǎng)頁十分類似荧缘,稱之為“精準定位”皆警。瀏覽器對于元素的呈現(xiàn)規(guī)則十分嚴格,并不會在意href是內(nèi)鏈還是外鏈截粗,也不會遺漏html中的次要元素信姓,甚至并不會區(qū)分元素的“重要性”。顯然嚴格遵循這套規(guī)則去解析網(wǎng)頁绸罗,對轉(zhuǎn)移信息到數(shù)據(jù)庫中并沒有啥幫助意推,例如數(shù)據(jù)源來自1000個站點,或許就需要寫1000套提取方案珊蟀,并作出后期維護菊值。

提取url

可以總結(jié)站點對于信息呈現(xiàn)的規(guī)律,以常見的類似書籍的“目錄-內(nèi)容”結(jié)構為例育灸。

  1. 目錄下腻窒,一定包含內(nèi)容的鏈接,以及指向下一頁或者前一頁的鏈接
  2. 目錄的url與其他目錄url相似磅崭,內(nèi)容頁url與其他內(nèi)容u頁url相似儿子。

相信這兩點對于大部分網(wǎng)站都適用,難點在于大型網(wǎng)站url的深度更深砸喻,結(jié)構可能更加復雜柔逼。但是,以此為立足點去看待原有的問題恩够,就會非常簡單--僅僅需要計算url的相似度卒落。我希望的方案是盡量符合人的判斷標準羡铲,將url進行拆分蜂桶。python3中urllib.parse.urlparse 將url解析成好幾個片段,基于這些片段可以做出統(tǒng)計也切,然后給定一個閾值就可以做一個簡單的分類扑媚。

提取正文

為了更好的表達腰湾,我對于常見文本類html內(nèi)容作出一下劃分

  • 定義: 主體,背景疆股,分支费坊,噪音
- 主體,html主要信息呈現(xiàn)
- 背景旬痹,區(qū)分不同站點附井,網(wǎng)站基本介紹-內(nèi)鏈-js腳本,和主體在一個量級
- 分支两残,主體的不同段落永毅,呈現(xiàn)主體的結(jié)構
- 噪音,夾在在分支之間的無關信息人弓,比如會員登錄提示沼死,和分支一個量級

百度搜索的結(jié)果頁為例,頂部的搜索欄與右邊的推薦我認為是背景崔赌,整個搜索結(jié)果我認為是主體意蛀,各個相關搜索結(jié)果是分支,其中的“商業(yè)推廣”我認為是噪音健芭。
同一站點內(nèi)

  • 假設
- 背景與主體的位置一致
- 背景相似县钥,甚至相同
- 相似主題的html噪音相似

對于相同的背景可以對比兩個html的將其去除,甚至js腳本可以根據(jù)在dom樹里的tag直接去除吟榴。通常到這一步已經(jīng)可以獲取比較干凈的內(nèi)容魁蒜,比如想離線瀏覽小說的宅友們。后面難點在于對于噪音的清洗吩翻,如果噪音與背景一樣都是完全相同或者說是js腳本兜看,或者有類似“推廣”的標簽,那就很容易狭瞎。目前還在探索中细移。

總結(jié)

基于html標簽的做法,“假設每個元素都有唯一的標簽”熊锭,足夠通用(本來就是標記語言)但不細致弧轧。那么想作出通用爬蟲,就必須作出通用并且細致的假設碗殷。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末精绎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子锌妻,更是在濱河造成了極大的恐慌代乃,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搁吓,居然都是意外死亡原茅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門堕仔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擂橘,“玉大人,你說我怎么就攤上這事摩骨⊥ㄕ辏” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵恼五,是天一觀的道長滑频。 經(jīng)常有香客問我,道長唤冈,這世上最難降的妖魔是什么峡迷? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮你虹,結(jié)果婚禮上绘搞,老公的妹妹穿的比我還像新娘。我一直安慰自己傅物,他們只是感情好夯辖,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著董饰,像睡著了一般蒿褂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上卒暂,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天啄栓,我揣著相機與錄音,去河邊找鬼也祠。 笑死昙楚,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的诈嘿。 我是一名探鬼主播堪旧,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奖亚!你這毒婦竟也來了淳梦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤昔字,失蹤者是張志新(化名)和其女友劉穎爆袍,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡螃宙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了所坯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谆扎。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖芹助,靈堂內(nèi)的尸體忽然破棺而出堂湖,到底是詐尸還是另有隱情,我是刑警寧澤状土,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布无蜂,位于F島的核電站,受9級特大地震影響蒙谓,放射性物質(zhì)發(fā)生泄漏斥季。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一累驮、第九天 我趴在偏房一處隱蔽的房頂上張望酣倾。 院中可真熱鬧,春花似錦谤专、人聲如沸躁锡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽映之。三九已至,卻和暖如春蜡坊,著一層夾襖步出監(jiān)牢的瞬間杠输,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工秕衙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抬伺,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓灾梦,卻偏偏與公主長得像峡钓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子若河,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

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

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理能岩,服務發(fā)現(xiàn),斷路器萧福,智...
    卡卡羅2017閱讀 134,713評論 18 139
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案拉鹃? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,760評論 1 92
  • <a name='html'>HTML</a> Doctype作用?標準模式與兼容模式各有什么區(qū)別? (1)、<...
    clark124閱讀 3,498評論 1 19
  • 六膏燕、一班 劉璐薇 一本普通的書钥屈,能使你受益匪淺,可能會引導你走向成功的路坝辫,這是一本既簡單又復雜的書篷就,如果你把握不...
    一花匠閱讀 391評論 0 0
  • 你是最初的儀式 是含在嘴里的一顆糖 路過所有野蠻與驚慌 如今 送你一樹合歡花 請不要用思念丈量
    Glowing_閱讀 279評論 0 1