国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python爬蟲之遍歷單個域名

2020-02-15 21:29:47
字體:
來源:轉載
供稿:網友

即使你沒聽說過“維基百科六度分隔理論”,也很可能聽過“凱文 • 貝肯 (Kevin Bacon)的六度分隔值游戲”。在這兩個游戲中,目標都是把兩 個不相干的主題(在前一種情況中是相互鏈接的維基百科詞條,而在后 一種情況中是出現在同一部電影中的演員)用一個鏈條(至多包含 6 個 主題,包括原來的兩個主題)連接起來。

比如,埃里克 • 艾德爾和布蘭登 • 弗雷澤都出現在電影《騎警杜德雷》 里,布蘭登 • 弗雷澤又和凱文 • 貝肯都出現在電影《我呼吸的空氣》 里。因此,根據這兩個條件,從埃里克 • 艾德爾到凱文 • 貝肯的鏈條 長度只有 3 個主題。

感謝 The Oracle of Bacon 的存在,滿足了我對這類關系鏈的好奇心。

我們將在本節創建一個項目來實現“維基百科六度分隔理論”的查找方 法。也就是說,我們要實現從埃里克 • 艾德爾的詞條頁面 (https://en.wikipedia.org/wiki/Eric_Idle)開始,經過最少的鏈接點擊次 數找到凱文 • 貝肯的詞條頁面(https://en.wikipedia.org/wiki/Kevin_Bacon)。

這么做對維基百科的服務器負載有多大影響?

根據維基媒體基金會(維基百科所屬的組織)的統計,該網站每秒 會收到大約2500次點擊,其中超過 99% 的點擊都指向維基百科域 名[詳情請見“維基媒體統計圖”(Wikimedia in Figures)里的“流量 數據”(Traffic Volume)部分內容]。因為網站流量很大,所以你 的網絡爬蟲不可能對維基百科的服務器負載產生顯著影響。不過, 如果你頻繁地運行本書的代碼示例,或者自己創建項目來抓取維基 百科的詞條,那么希望你能夠向維基媒體基金會提供一點捐贈—— 不只是為了抵消你占用的服務器資源,也是為了其他人能夠利用維 基百科這個教育資源。

還需要注意的是,如果你準備利用維基百科的數據做一個大型項 目,應該確認該數據是不能夠通過維基百科 API 獲取的。維基百科 網站經常被用于演示爬蟲,因為它的 HTML 結構簡單并且相對穩定。但是它的 API 往往會使得數據獲取更加高效。 你應該已經知道如何寫一段 Python 代碼,來獲取維基百科網站的任何 頁面并提取該頁面中的鏈接了。

from urllib.request import urlopen from bs4 import BeautifulSouphtml = urlopen('http://en.wikipedia.org/wiki/Kevin_Bacon') bs = BeautifulSoup(html, 'html.parser') for link in bs.find_all('a'):  if 'href' in link.attrs:    print(link.attrs['href'])

如果你觀察生成的一列鏈接,會看到你想要的所有詞條鏈接都在里 面:“Apollo 13”“Philadelphia”“Primetime Emmy Award”,等等。但是, 也有一些你不需要的鏈接:

//wikimediafoundation.org/wiki/Privacy_policy

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仙桃市| 仁寿县| 绩溪县| 武平县| 兖州市| 乡宁县| 仁怀市| 肥东县| 临洮县| 庆元县| 禹州市| 沂源县| 儋州市| 仙居县| 高碑店市| 盖州市| 黄大仙区| 阳信县| 宁津县| 崇明县| 湄潭县| 喀喇沁旗| 元阳县| 奎屯市| 平武县| 广灵县| 衢州市| 庐江县| 桂林市| 泽州县| 嘉峪关市| 屏边| 明星| 曲靖市| 博白县| 巴林左旗| 出国| 玉屏| 五河县| 霍山县| 清流县|