『壹』 SEO優化中如何利用好標簽功能_標簽seo
網站站內優化是非常重要的一個環節,當一個網站的頁面數量達到一定量級的時候,要堅持把網余睜站做的扁平化就顯得尤為困難,很多時候頁面的堆積只能通過分類、分頻道以及分頁來保持頁面能有一個單一的入口被蜘蛛爬取到,但是由於站內資源的限制,尤其對於個人站長,想盡各種辦法增加每一個頁面在站內體系的推薦數量,也就是站內頁面投票用來提升目標頁面的權重,增加被索引率,但是往往會造成頁面臃腫,質量下降,影響用戶的閱讀體驗,同樣是不被搜索引擎認可。這個時候就開始有了索引標簽的概念,如果你使用過wordpress、phpcms、dedecms等開源的網站程序,你就會發現程序集成或者一些插件引入了標簽這樣一個功能,他可以把海量的詳情頁面通過相關性聚合到一起,最大化實現網站結構的扁平化。
我把對SEO標簽的使用心得給大家整理出來,主要圍繞標簽應該如何去選取、標簽如何部署才會合理以及標簽使用過程中的一些注意事項來做分享。
一、標簽的選取
1、通過拓詞工具(比如金花站長工具、網路關鍵詞推薦工具、5118等一些工具)獲取行業內用戶搜索的關鍵詞,之所以獲取關鍵詞是因為互聯網上分享的資源都是基於這些關鍵詞來實現索引,從而解決用戶最終訴求的資源,拿到這些詞以後通過關鍵詞分組工具(比如光年提供的關鍵詞分組工具豎孝歲或者通過python開發一些數據處理的小插件)按照詞頻歸類,這些歸類的關鍵詞就是你要獲取的最終標簽。
想認識學習SEO網站優化,可以加裙,前面是461,中間是860,最後是887.。
2、文章系統增加自動提取標簽功能,主要按照文章某些關鍵詞出現的頻次來定,生成的過程中一定要增加審核標簽功能,至於原因後續會在注意事項裡面提及。
3、人為增加關鍵詞標簽,如果你使用知乎或者自己發表博客的時候會有讓你添加標簽的選項框,雖然效率比較低,但是往往比較有效,也不容生成很多的重復頁面或者空頁面,給網站製造垃圾,通用有使用過wordpress的站長朋友,會發現每篇文章都要求作者添加一些標簽,有數量限制,要求3或者5個這樣子。
二、標簽站內布局
1、文章的底部增加標簽板塊,不過要做數量限制,不超過5個,按照相關性降序調取;
2、文章詳情頁增加熱門標簽板塊,調取訪問量最多的關鍵詞標簽;
3、標簽歸類,按照業務、地區、或者字母等維度,只要是提升用戶體驗的維度都可以歸類,聚合出一個標簽大全頻道頁面,然後聚合頁面在網站的公共頭尾選擇一個入口布局。
隨著站內標簽越來越多,你就要合理的規劃這些標簽,因為這些標簽加強了你站內資源的相關性和關聯性,使你的網站結構更加扁平化,也更有利於搜索引擎的爬取。
三、標簽使用注意事項
1、如果是動態或者批量生成的標簽關鍵詞一定要把控生成頁面的質量,如果是空頁面先不要給站內增加入口,通過程序嚴格審核有了聚合的內容資源之後才給予入口;
2、人工添加標簽不要選擇形義相近的關鍵詞,避免生成太多的重復頁面,每個主題的關鍵詞只選擇一個即可;
3、對於行業內業務板塊已經成熟的分類,在站內生成對應的分類列表頁即可,因為標簽頁分為很多種,主要包含分類標簽、專題標簽以及索慎攔引標簽,本篇文章著重介紹索引標簽
『貳』 Python適合什麼年齡段人學習
Python適合什麼年齡段人學習這個沒有規定,只要想學都可以學,但是以下人群是比較需要掌握的。
1、編程新手
非常喜愛編程,以後想從事相關工作,但是零基礎,不知道入門選擇什麼編程語言的朋友,其實是最適合選擇Python編程語言的。
2、伏遲網站前端開發人員
平常只關注div+css這些頁面技術,很多時候其實需要與後端開發人員進行交互的,學習python編程語言,更加便於溝通賀缺。
3、SEO人員
Python的學習可以幫助SEO人員有能力編禪廳辯寫一些查詢收錄、排名以及自動生成網站地圖等SEO工具,讓SEO工作更簡單便捷。
4、在校學生
Python已經被列為高中計算機學習課程,對於現在的在校大學生來說,空閑時間多,學習python編程語言在彌補相關技能的同時,還能掌握一種新技能,對以後的工作更有幫助。
5、java開發人員
相比於Java,python近兩年更加火爆,很多java開發人員瞄準了這個市場,轉型做python,能更輕松的獲得高薪職業。
『叄』 Python的就業前景怎麼樣
Python未來的前景怎麼樣?就業崗位多不多?薪資高不高?今天就來看一下詳細分析。
1、為什麼這么多人學Python呢?
很多初學者都聽說python很火,可是為啥要學Python,下面談談我的感悟。
Python語言是我目前為止用的最爽的語言,因為它真的很優美。雖然C、C++、Java也非常的強大和偉大,但是每一種語言偉大的背後都是有一定的時代背景。
Python被廣泛的用在Web開發、運維自動化、測試自動化、數據挖掘等多個行業和領域。
一項專業調查顯示,75%的受訪者將Python視為主要開發語言,反之,其他25%受訪者則將其視為輔助開發語言。
將Python作為主要開發語言的開發者數量逐年遞增,這表明Python正在成為越來越多開發者的開發語言選擇。
那和纖激么未來10年到底哪種語言會獨領風騷,笑傲江湖,我不得而知,但是未來10年一定是人工智慧,萬物互聯的時代,現在AI、VR、無人駕駛汽車、無人機、智能家居離我們越來越近了。
未來10年將是大數據,人工智慧爆發的時代,到時將會有大量的數據需要處理,而Python最大的優勢,就是對數據的處理,有著得天獨厚的優勢,我相信未來的10年,Python會越來越火。
2、Python崗位需求量10萬
從職友集最新Python招聘崗位需求來豎培看,Python工程師的崗位需求量巨大,並且崗位需求量還在呈現上漲的趨勢。
全國Python崗位需求量接近10萬;
北京崗位需求量居首位為20890個佔比21.17%,
上海Python工程師崗位需求量居第二位為12843個佔比13.02%,
其次是深圳、杭州、廣州等一線城市合計佔比16.53%。
從下圖可知,Python相關職位的需求量,依然集中在三大經濟圈,特別是在北京、上海、深圳這幾個城市。
3、Python就業薪資水漲船高
從職友集最新Python招聘崗位需求來看,Python工程師的崗位需求量巨大,並且崗位需求量還在呈現上漲的趨勢。
從市場整體需求來看,Python在招聘市場上的流行程度也是在逐步上升的,工資水平也是水漲船高。
一張圖可以看清現在Python的就業薪資:喚襪
以上為Python各方向薪資
因為Python在大數據和人工智慧領域的爆發性發展,導致Python方向崗位的薪水在水漲船高,從數據分析來看,月薪在20K-50K不等。
學習Python的程序員,除了能從事Python開發工程師、人工智慧工程師、數據分析師、Python自動化測試外,也能夠朝著Python游戲開發工程師、SEO工程師、Linux運維工程師等方向發展,發展方向較為多元化。
說這么多之後,你會發現,Python的發展前景十分廣闊。並且Python是一門真正意義上的全棧語言,即使目前世界上使用最廣泛的Java語言,在很多方面與Python相比也遜色很多!
『肆』 學會了seo為什麼還要學python
Python是一門猜頃面向對象的編程語言,它相對於其他宏彎語言,更加易學、易讀,非常適合快速開發穗絕陸
『伍』 想做好SEO需要做些什麼呢
seo優化網站要做的工作還是比較多的,首先我們先思考SEO到底從哪幾個方面入手。其實在做網站的時候,已經做過最基礎的SEO工作,比如META標簽的編輯,這是一項最基礎也是非常重簡扒要的SEO工作。在上傳產品、上傳文檔的時候,就會把這些關鍵詞SEO布局做到位。
★ 網站SEO的布局
第一步:選取SEO核心關鍵詞
SEO核心關鍵詞是指能給網站帶來80%流量的關鍵詞。一個企業的核心關鍵詞要達到50-100個之間。怎麼去挑選呢?方法很多,比如通過聯想方式,或者是下拉方式,還有通過網路指數的方式等。
第二步:網站關鍵詞布局
1.網站結構優化、品牌詞優化
把拓展出來的最核心的關鍵詞分配到網站主導航每個欄目中去,一個網站的主導航一般有10個欄目,每個欄目分配3-5個關鍵謹閉詞,這樣就消耗了50個關鍵詞。
剩 下的詞放到網站的二級列表頁面,或者三級詳情頁面。每個頁面用1個關鍵詞,這個關鍵詞一定要是長尾關鍵詞。這就是網站的結構優化。
在網站結構優化過程中, 把品牌詞加進去,就完成了網站的品牌詞優化。
2.編輯META標簽
每一個頁面都應該用不同的關鍵詞去編輯META標簽,網站的每個頁面都有它的身份,META標簽就像他的身份證證號碼。要賦予不同的頁面以不同的身份,這樣才容易被祥咐裂網路識別和抓取。
如果說你的身份證號碼是一個,網路就只抓一個,所以每個頁面的META標簽都應該不同。
上面僅僅是做好了最基礎的SEO布局,接下來教大家站內SEO到底該怎麼做?
其實站內SEO優化的重點在站內文章的編輯上。
站內文章編輯:
站內文章編輯如何寫?很多人更新網站的文章就是在寫公司的新聞,請問誰會去看你的新聞呢?
另外,如果漫無目的去寫文章,也是白費功夫一場。
一、站內文章長尾關鍵詞布局技巧:
1.文章的標題當中應有含有長尾關鍵詞;
2.文章的第一段,即文章頭200-300個字內,出現相應長尾的關鍵詞;
3.文章的內容段,即300-500欄位內,出現2-3次相應長尾的關鍵詞。
SEO優化是一個漫長的過程,每天網站文章更新也是必不可少的。
『陸』 如何學習SEO
首先,學習SEO我是建議採用自學的方式,效率更高,吸收程度也更好。先判陵分為入門,進階,終極這3個階段。
入門
網路站長學院 & Google Search Console幫助 。
這2個都是官方文檔,信息可靠,而且會及時更新。
要學習科學的SEO(而不是玄學),要保證信息來源都是可靠的。
這2個文檔能解決90%的SEO問題,比如title怎麼寫,description怎麼設置等等。
官方文檔藏有很多細節,英文SEOer甚至建議直接看英文文檔。反正我是看了好多遍。
搜索引擎原理
知己知彼,了解搜索引擎如何運作,才能有的放矢。
推薦兩本書《走進搜索引擎》《這就是搜索引擎》,剛開始看可能看不懂,堅持看完就會有突破。
更高階一點是《信息檢索導論》,反正我是試了三次看到一半就看不下去了。
SEO動態
中文SEO建議看網路站長學院;英文SEO建議看Search Engine Roundtable的Search Forum Recap欄目。如果覺得英文麻煩,也可以關注我博客或公眾號,我一般一周會發一篇Google SEO快訊。
搜索引擎是不斷升級的,各種SEO技巧也是不斷發展。幾年前有人用單頁就能跟163郵箱爭奪排名,到目前反作弊規則越來越完善,SEOer要不斷提升網頁質量,加快網頁速度。
實戰經驗
所有的想法,思路都要經過實戰歷練;所有的知識只用通過應用才能真正掌握。
建立「規劃 - 上線 - 監控 - 總結反思 - 規劃」的閉環。一次達不到預期,有了正向迭代才能不斷進步。
可以從自己的小網站,或者公司的小項目著手。
進階
數據分析
你要看流量,看收錄,看抓取。特別是流量異常時要細分,交叉,對比,才能面對領導的挑戰。
最好是精通GA,再不濟要熟悉網路統計,CNZZ,有監控數據的習慣。
編程
如果不會編程,即便再小的需求也要求助程序員GG,即便再簡單的需求也會被忽悠。
學Python吧,簡單易上手,會讓你有一種「上廁所噓噓都要用腳本實現」的錯覺。
跨界
產品。滿足用戶的需求是SEO長久之計(可參考之前文章:用正坦產品思維去做SEO)。比如用戶是想要蘋果電影未刪減版的種子,你給他一個iPhone 8的諜報,是滿足不了用戶需求的。
運營。沒有運營小夥伴,你怎麼生產高質量原創內容?
行業知識
要想做一名好的SEO,過硬的行業知識是少不了的;你要懂你的用戶,懂得他們的需求和痛點。
轉化
只有變現,才能讓SEO部門越來越重要,否則只是一個做流量的,可有可無,時間久了會邊緣化。
高級
策略
不要只著眼於眼前的頻道或項目,可以放眼整個網站或行業的SEO格局。
渠道
SEO只是流量渠道的一部分,要了解其他流量渠道,並對各個渠道的優缺點有大致的了解。
生態
SEO主要是基於web生態,而web生態已經不再一家獨大。比如APP生態,微信生態,甚至說今日頭條,知乎,微博,都在有影響到web生態。對生態的理解,可以幫助你預測SEO之後的發展。
終極
《頸椎病康復指南》
以前覺得自己頭暈,心慌,胸悶,手發麻,失眠,是自己快要掛掘清戚了,其實都是頸椎問題。 ——來自朋友圈。
SEO培訓推薦
除了自學外,參加大神的培訓,來一次系統化的學習,我覺得也是有必要的。優就業培訓推薦一下,也是我都有參加的。
『柒』 SEO、SEOer有哪些是必備的工具
SEO工作主要圍繞著關鍵詞挖掘、關鍵詞布局、網頁收錄、排名監控等過程,這幾個過程同時也是影響SEO流量和定單轉化的關鍵因素模枝梁。那麼,在日常SEO工作中,我們需要用到哪些工具,以便SEO工作開展更有目的?
介紹這些工具之前,再提一下這個公式SEO流量=網頁收錄量×首頁率×點擊率
通過這個公式,我們了解到要監控的數據有這些:網頁收錄量關鍵詞排名SEO流量
再細搭塌分拆解,就有網頁抓取量等等。這里就不展開討論。思路理清後,我們開始介紹相關的工具,方便理解本文。
挖詞工具
網頁版
愛站網:
站長之家:
5118:
詞庫網:
各網頁版的差別:愛站網與站長之家挖詞功能類似,不同之外在於,站長之家有關鍵詞導出的功能,這點會更便於用戶。而5118比這2者更加爽快,只要是注冊會員,登錄後便可下載超過1500個關鍵詞。詞庫網可以導出更大量級,但前提條件是,要!付!費!(免費時代過去了,別老在想著凡事都能免費)
軟體版
推薦使用鬥牛站長工具、金花站長工具。
這2款工具,個人更喜歡用金花站長旦運工具多一些,功能強大,體驗更方便。
提醒:這2款工具有免費版也有付費版,特別推薦付費版,功能更強大一些。
以下為這2款軟體的下載地址:
1.鬥牛站長工具
排名查詢工具
排名查詢同樣分2種情況:全網關鍵詞排名情況(關鍵詞覆蓋率)、近期新布局關鍵詞排名情況。
全網關鍵詞排名情況查詢推薦使用愛站、站長之家等進行監控,如果需要長期整站監控的話,推薦使用金花站長工具、愛站工具包等。
近期關鍵詞排名情況查詢
推薦使用鬥牛站長工具
流量查詢工具
個人最常用的流量查詢工具主要是網路統計,可以通過頁面分析、來源渠道、不同埠等維度進行分析。方便了解帶來SEO流量的搜索詞有哪些。使用方面也比較簡單,但前提條件一定是得先把代碼嵌入到網站中,才能統計。(這個主要是對小白用戶的提醒,大白可以飄過了~)
其它工具
當網站頁面達到成千上萬級時,掌握一門程序語言會顯得尤其重要,這里推薦python,可以用來處理大規模的數據。其它的還有:shell光年日誌分析工具
以上這多款工具都是貫穿SEO整個工作過程,圍繞著SEO數據展開做監控、做分析,有數據驅動才能做科學的SEO!
『捌』 SEO如何布局關鍵詞
清楚如何挖掘關鍵詞後,下一步要做的便是布局關鍵詞,那麼關鍵詞布局策略有哪些,如何布局關鍵詞呢?從3方面來說明:
判斷關鍵詞競爭度
分析關鍵詞共性,確定著陸頁形態
頁面關鍵詞布局說明
一、判斷關鍵詞競爭度
再以咖啡這個行業為例來說明。(對這個行業相對比較了解,所以甭見怪)假設現在我們准備做一個咖啡門戶網站,我們需要對游猛行業關鍵詞進行分析。
分析關鍵詞競爭度
取出有搜索量的關鍵詞,進行查看在網路自然排名前10的頁面類型有哪些?通常排名的頁面類型有這些:網站首頁、網站欄目頁、網站標簽頁/專題頁、網站詳情頁。
(1)當自然排名前10的頁面類型超過60%以上為網站首頁時,那麼說明關鍵詞的競爭度相對來說會比較高。
為何這樣說呢?
從權重的角度來說,權重的先後順序為:網站首頁>網站欄目頁>網站標簽頁/專題頁>網站詳情頁。
而從搜索引擎的角度出發來考慮,搜索引擎的目標為更快、更好的滿足用戶多樣化的需求,當出現的頁面均是自家產品時,可以說明收錄相關的頁面較少,或者頁面質量普遍低於網路自家頁面,從側面也可以反應競爭度不高。
分析完關鍵詞競爭度,懂python的童鞋可以跑一下數據,查看這些有搜索量的關鍵詞,自然排名前10的頁面類型分布。可以做一個類似下面的表格,進行記錄分析。方便確定頁面類型。
二、分析關鍵詞共性,確定著陸頁形態
當我們分析咖啡行業時,會發現用戶有這些方面的需求:購買物料/設備、了解使用方法/製作技巧。關鍵詞的共性需求就有,咖啡豆價格/咖啡機價格等,XX咖啡製作方法。
通過排名頁面類型的分析,以及通過關鍵詞的共性分析,價格類的關鍵詞,排名前10的站點頁面類型更偏向於是使用欄目頁面類型。如,咖啡機價格,排名前10的分別是一些商城的欄目頁。
如果你對所處的行業非常了解,也知道目前的競爭對手有哪些,那麼可以結合著上述的方法,再加一步,競爭對手分析。可以通過分析競爭對手的關鍵詞覆蓋情況、產品形態分析(即著陸頁分析)、核心關鍵詞排名等等
不了解行業有哪些競爭對手的,一樣,可以通過python抓取有搜索量的行業關鍵詞,排名前10的站點情況,再對排名前10的站點進行數據透視分析,排名數量最多的那幾個站點,可以重點的作為分析對象。
三、頁面關鍵詞布局說明
確定好著陸頁後,如果是個大型的網站,那麼一般是由產品經理確定原型圖(即著陸頁形態),然後SEO輸出需求文檔。那麼,在確定好的頁面上,如何進行頁面關鍵詞布局呢?以泡泡網-咖啡機價格欄目頁為例來說明:
url:/kafeiji/01222/
打開此頁面,並進行右鍵——>源代碼查看。以下這幾個重點標簽一定要布局上關鍵詞。
(1)title:寫好title規則,分2種情況,共性與非共性,共性的關鍵詞,可以寫好碰輪關鍵詞的組合公式規則,如果是非共性的關鍵詞,一般會單獨設置手動填寫title,再讓開發將需求做成讀取手動填寫的內容。
title的寫法規則:關鍵詞3個-5個,避免關鍵詞堆積,突出品牌詞。eg:關鍵詞1_關鍵詞2_關鍵詞3-品牌詞
以泡泡網來為例來說明,見下圖
首先,咖啡機價格是有共性需求的,比如:品牌+咖啡機+價格,類別+咖啡機+價格。因此,我們在寫SEO關鍵詞需求時,可以寫共性規則,如:單選時,咖啡機價格_咖啡機報價-泡泡網;多選時,品牌+咖啡機價格_品牌+咖啡機報價-泡泡網。
(2)除了title標簽外,可以適量、自然的在頁面出現所有做的關鍵詞,適當增加關鍵詞密度。記住:過量則死,出現過度優化笑磨信也會被懲罰。標簽方面,還有ALT標簽要注意,出現圖片,可以添加上ALT標簽,表明圖片內容是什麼。比如,一台某品牌咖啡機,那麼ALT="某品牌咖啡機",可以按此寫法來說明。
寫了2.5小時,總算把關鍵詞布局方法給寫完了,不知道你是否真的明白了,如果明白了,就趕緊行動起來,看看你所負責的站點在關鍵詞布局這塊是否還有可優化的空間!
『玖』 48tools怎麼下載
48Tools是一個基於Python編寫的SEO工具集,提供了一系列實用且高效的網路營銷工具。要下載48Tools,首先需要租中純在自己的計算機上安裝Python環境,並下載48Tools開源代碼包。可以在Github上搜索48Tools,找到相應的項目頁面,從頁面上選擇下載地址,或者培襪直接使用git clone命令下載,解壓後在Python環境中按照提示完成安裝即可。安裝完成後,打開命令行或終端窗口,進入48Tools所在的目錄中,使用Python運行其中弊咐的腳本文件來使用不同的SEO工具進行網站優化和營銷。
『拾』 如何用最簡單的Python爬蟲採集整個網站
在之前的文章中Python實現「維基網路六度分隔理論「之基礎爬蟲,我們實現了在一個網站上隨機地從一個鏈接到另一個鏈接,但是,如果我們需要系統地把整個網站按目錄分類,或者要搜索網站上的每一個頁面,我們該怎麼辦?我們需要採集整個網站,但是那是一種非常耗費內存資源的過程,尤其是處理大型網站時,比較合適的工具就是用一個資料庫來存儲採集的資源,之前也說過。下面來說一下怎麼做。
網站地圖sitemap
網站地圖,又稱站點地圖,它就是一個頁面,上面放置了網站上需要搜索引擎抓取的所有頁面的鏈接(註:不是所有頁面,一般來說是所有文章鏈接。大多數人在網站上找不到自己所需要的信息時,可能會將網站地圖作為一種補救措施。搜索引擎蜘蛛非常喜歡網站地圖。
對於SEO,網站地圖的好處:
1.為搜索引擎蜘蛛提供可以瀏覽整個網站的鏈接簡單的體現出網站的整體框架出來給搜索引擎看;
2.為搜索引擎蜘蛛提供一些鏈接,指向動態頁面或者採用其他方法比較難以到達的頁面;
3.作為一種潛在的著陸頁面,可以為搜索流量進行優化;
4.如果訪問者試圖訪問網站所在域內並不存在的URL,那麼這個訪問者就會被轉到「無法找到文件」的錯誤頁面,而網站地圖可以作為該頁面的「准」內容。
數據採集
採集網站數據並不難,但是需要爬蟲有足夠的深度。我們創建一個爬蟲,遞歸地遍歷每個網站,只收集那些網站頁面上的數據。一般的比較費時間的網站採集方法從頂級頁面開始(一般是網站主頁),然後搜索頁面上的所有鏈接,形成列表,再去採集到的這些鏈接頁面,繼續採集每個頁面的鏈接形成新的列表,重復執行。
很明顯,這是一個復雜度增長很快的過程。加入每個頁面有10個鏈接,網站上有5個頁面深度,如果採集整個網站,一共得採集的網頁數量是105,即100000個頁面。
因為網站的內鏈有很多都是重復的,所以為了避免重復採集,必須鏈接去重,在Python中,去重最常用的方法就是使用自帶的set集合方法。只有「新」鏈接才會被採集。看一下代碼實例:
from urllib.request import urlopenfrom bs4 import BeautifulSoupimport repages = set()def getLinks(pageurl):globalpageshtml= urlopen("" + pageurl)soup= BeautifulSoup(html)forlink in soup.findAll("a", href=re.compile("^(/wiki/)")):if'href' in link.attrs:iflink.attrs['href'] not in pages:#這是新頁面newPage= link.attrs['href']print(newPage)pages.add(newPage)getLinks(newPage)getLinks("")
原理說明:程序執行時,用函數處理一個空URL,其實就是維基網路的主頁,然後遍歷首頁上每個鏈接,並檢查是否已經在全局變數集合pages裡面,如果不在,就列印並添加到pages集合,然後遞歸處理這個鏈接。
遞歸警告:Python默認的遞歸限制是1000次,因為維基網路的鏈接浩如煙海,所以這個程序達到遞歸限制後就會停止。如果你不想讓它停止,你可以設置一個遞歸計數器或者其他方法。
採集整個網站數據
為了有效使用爬蟲,在用爬蟲的時候我們需要在頁面上做一些事情。我們來創建一個爬蟲來收集頁面標題、正文的第一個段落,以及編輯頁面的鏈接(如果有的話)這些信息。
第一步,我們需要先觀察網站上的頁面,然後制定採集模式,通過F12(一般情況下)審查元素,即可看到頁面組成。
觀察維基網路頁面,包括詞條和非詞條頁面,比如隱私策略之類的頁面,可以得出下面的規則:
所有的標題都是在h1→span標簽里,而且頁面上只有一個h1標簽。
所有的正文文字都在div#bodyContent標簽里,如果我們想獲取第一段文字,可以用div#mw-content-text→p,除了文件頁面,這個規則對所有頁面都適用。
編輯鏈接只出現在詞條頁面上,如果有編輯鏈接,都位於li#ca-edit標簽的li#ca-edit→span→a裡面。
調整一下之前的代碼,我們可以建立一個爬蟲和數據採集的組合程序,代碼如下:
import redef getLinks(pageUrl):global pageshtml = urlopen("" + pageUrl)soup = BeautifulSoup(html)try:print(soup.h1.get_text())print(soup.find(id="mw-content-text").findAll("p")[0])print(soup.find(id="ca-edit").find("span").find("a").attrs['href'])except AttributeError:print("頁面缺少屬性")for link in soup.findAll("a", href =re.compile("^(/wiki/)")):if 'href' in link.attrs:#這是新頁面newPage = link.attrs['href']print("------------------\n"+newPage)
這個for循環和原來的採集程序基本上是一樣的,因為不能確定每一頁上都有所有類型的數據,所以每個列印語句都是按照數據在頁面上出現的可能性從高到低排列的。
數據存儲到MySQL
前面已經獲取了數據,直接列印出來,查看比較麻煩,所以我們就直接存到MySQL裡面吧,這里只存鏈接沒有意義,所以我們就存儲頁面的標題和內容。前面我有兩篇文章已經介紹過如何存儲數據到MySQL,數據表是pages,這里直接給出代碼:
import reimport datetimeimport randomimport pymysqlconn = pymysql.connect(host = '127.0.0.1',port = 3306, user = 'root', passwd = '19930319', db = 'wiki', charset ='utf8mb4')cur = conn.cursor()cur.execute("USE wiki")#隨機數種子random.seed(datetime.datetime.now())#數據存儲def store(title, content):cur.execute("INSERT INTO pages(title, content)VALUES(\"%s\", \"%s\")", (title, content))cur.connection.commit()def getLinks(articleUrl):html = urlopen("" + articleUrl)title = soup.find("h1").get_text()content =soup.find("div",{"id":"mw-content-text"}).find("p").get_text()store(title, content)returnsoup.find("div",{"id":"bodyContent"}).findAll("a",href=re.compile("^(/wiki/)((?!:).)*$"))#設置第一頁links =getLinks("/wiki/Kevin_Bacon")try:while len(links)>0:newArticle = links[random.randint(0, len(links)-1)].attrs['href']print (newArticle)links = getLinks(newArticle)finally:cur.close()conn.close()
小結
今天主要講一下Python中遍歷採集一個網站的鏈接,方便下面的學習。
希望通過上面的操作能幫助大家。如果你有什麼好的意見,建議,或者有不同的看法,我都希望你留言和我們進行交流、討論。