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

首頁 > 編程 > Python > 正文

Python構(gòu)建網(wǎng)頁爬蟲原理分析

2020-02-16 11:09:43
字體:
供稿:網(wǎng)友

既然本篇文章說到的是Python構(gòu)建網(wǎng)頁爬蟲原理分析,那么小編先給大家看一下Python中關(guān)于爬蟲的精選文章:

python實現(xiàn)簡單爬蟲功能的示例

python爬蟲實戰(zhàn)之最簡單的網(wǎng)頁爬蟲教程

網(wǎng)絡(luò)爬蟲是當(dāng)今最常用的系統(tǒng)之一。最流行的例子是 Google 使用爬蟲從所有網(wǎng)站收集信息。除了搜索引擎之外,新聞網(wǎng)站還需要爬蟲來聚合數(shù)據(jù)源。看來,只要你想聚合大量的信息,你可以考慮使用爬蟲。

建立一個網(wǎng)絡(luò)爬蟲有很多因素,特別是當(dāng)你想擴(kuò)展系統(tǒng)時。這就是為什么這已經(jīng)成為最流行的系統(tǒng)設(shè)計面試問題之一。在這篇文章中,我們將討論從基本爬蟲到大型爬蟲的主題,并討論在面試中可能會遇到的各種問題。

1 - 基本解決方案

如何建立一個基本的網(wǎng)絡(luò)爬蟲?

在系統(tǒng)設(shè)計面試之前,我們已經(jīng)在《系統(tǒng)設(shè)計面試之前需要知道的八件事》中談到,就是從簡單的東西開始。讓我們專注于構(gòu)建在單線程上運(yùn)行的基本網(wǎng)頁爬蟲。有了這個簡單的解決方案,我們可以繼續(xù)優(yōu)化。

要抓取單個網(wǎng)頁,我們只需要向相應(yīng)的 URL 發(fā)出 HTTP GET 請求,并解析響應(yīng)數(shù)據(jù),這是抓取工具的核心。考慮到這一點,一個基本的網(wǎng)絡(luò)爬蟲可以這樣工作:

以包含我們要抓取的所有網(wǎng)站的網(wǎng)址池開始。

對于每個 URL,發(fā)出 HTTP GET 請求來獲取網(wǎng)頁內(nèi)容。

解析內(nèi)容(通常為 HTML)并提取我們想要抓取的潛在網(wǎng)址。

添加新的網(wǎng)址到池中,并不斷抓取。

這取決于具體問題,有時我們可能會有一個獨(dú)立的系統(tǒng)來生成抓取網(wǎng)址。例如,一個程序可以不斷監(jiān)聽 RSS 訂閱,并且對于每個新文章,都可以將該 URL 添加到爬取池中。

2 - 規(guī)模問題

眾所周知,任何系統(tǒng)在擴(kuò)展后都會面臨一系列問題。在網(wǎng)絡(luò)爬蟲中,將系統(tǒng)擴(kuò)展到多臺機(jī)器時,有很多東西可能出錯。

在跳轉(zhuǎn)到下一節(jié)之前,請花幾分鐘的時間思考一下分布式網(wǎng)絡(luò)爬蟲的瓶頸,以及如何解決這個問題。在這篇文章的其余部分,我們將討論解決方案的幾個主要問題。

3 - 抓取頻率

你多久爬一次網(wǎng)站?

這聽起來可能不是什么大事,除非系統(tǒng)達(dá)到一定的規(guī)模,而且你需要非常新鮮的內(nèi)容。例如,如果你想要獲取上一小時的最新消息,則抓取工具可能需要每隔一小時不斷抓取新聞網(wǎng)站。但是這有什么問題呢?

對于一些小型網(wǎng)站,他們的服務(wù)器很可能無法處理這種頻繁的請求。一種方法是遵循每個站點的robot.txt。對于不知道robot.txt是什么的人,這基本是網(wǎng)站與網(wǎng)絡(luò)爬蟲交流的標(biāo)準(zhǔn)。它可以指定不應(yīng)該抓取什么文件,大多數(shù)網(wǎng)絡(luò)爬蟲都遵循配置。另外,你可以為不同的網(wǎng)站設(shè)置不同的抓取頻率。通常,每天只有幾個網(wǎng)站需要被多次抓取。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 浮梁县| 重庆市| 龙州县| 云和县| 马龙县| 平顺县| 庄河市| 田阳县| 思茅市| 广州市| 灵璧县| 大同市| 博湖县| 连平县| 遂宁市| 崇文区| 铁岭县| 讷河市| 汉川市| 泗阳县| 皋兰县| 依兰县| 凌云县| 紫金县| 巫山县| 甘德县| 东辽县| 博乐市| 万山特区| 岑巩县| 特克斯县| 安达市| 宁海县| 建德市| 金华市| 宿迁市| 巴彦淖尔市| 昭苏县| 三门峡市| 万载县| 西和县|