① 如何用最簡單的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中遍歷採集一個網站的鏈接,方便下面的學習。
希望通過上面的操作能幫助大家。如果你有什麼好的意見,建議,或者有不同的看法,我都希望你留言和我們進行交流、討論。
② 網站如何設置採集
搜索引擎通過一種程序robot(又稱spider),自動訪問互聯網上的網頁並獲取網頁信 息。您可以在您的網站中創建一個純文本文件robots.txt,在這個文件中聲明該網站中不想被robot 訪問的部分,這樣,該網站的部分或全部內容就可以不被搜索引擎收錄了,或者指定搜 索引擎只收錄指定的內容。 robots.txt文件位置 robots.txt文件應該放在網站根目錄下。舉例來說,當robots訪問一個網站時,首先會檢查該網站中是否存在robots.txt 這個文件,如果機器人找到這個文件,它就會根據這個文件的內容,來確定它訪問許可權的范 圍。 robots.txt文件的格式 「robots.txt」文件包含一條或更多的記錄,這些記錄通過空行分開(以CR,CR/NL,or NL作為結束符),每一條記錄的格式如下所示: 「<field>:<optionalspace><value><optionalspace>」 在該文件中可以使用#進行註解,具體使用方法和UNIX中的慣例一樣。該文件中的記錄 通常以一行或多行User-agent開始,後面加上若干Disallow行,詳細情況如下: User-agent: 該項的值用於描述搜索引擎robot的名字,在「robots.txt」文件中,如果有多條 User-agent記錄說明有多個robot會受到該協議的限制,對該文件來說,至少要有一條User- agent記錄。如果該項的值設為*,則該協議對任何機器人均有效,在「robots.txt」文件 中,「User-agent:*」這樣的記錄只能有一條。 Disallow: 該項的值用於描述不希望被訪問到的一個URL,這個URL可以是一條完整的路徑,也可以 是部分的,任何以Disallow開頭的URL均不會被robot訪問到。例如: 「Disallow: /help」對/help.html 和/help/index.html都不允許搜索引擎訪問, 而「Disallow: /help/」則允許robot訪問/help.html,而不能訪問/help/index.html。 任何一條Disallow記錄為空,說明該網站的所有部分都允許被訪問,在 「/robots.txt」文件中,至少要有一條Disallow記錄。如果「/robots.txt」是一個空文 件,則對於所有的搜索引擎robot,該網站都是開放的。 robots.txt文件存在的意義 有些人會問,既然robots文件沒弄好,或出錯了,會影響整個網站的收錄,那為什麼還要這個文件呢? 其實robots是為特定需要的站長准備的,因為有些網站,有一些頁面是站長不想被SE收錄的,所以才有了這個robots文件。 五、 robots.txt文件用法舉例 例1、禁止所有搜索引擎訪問網站的任何部分 User-agent: * Disallow: / 例2、允許所有的robot訪問 User-agent: * Disallow: (或者也可以建一個空文件 "/robots.txt" file) 例3、禁止某個搜索引擎的訪問 User-agent: BadBot Disallow: / 例4、允許某個搜索引擎的訪問 User-agent: Baispider Disallow: User-agent: * Disallow: / 例5、一個簡單例子 在這個例子中,該網站有三個目錄對搜索引擎的訪問做了限制,即搜索引擎不會訪問這三個目錄。 User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /joe/ 需要注意的是對每一個目錄必須分開聲明,而不要寫成:「Disallow: /cgi-bin/ /tmp/」。 User-agent:後的* 具有特殊的含義,代表「any robot」,所以在該文件中不能有 「Disallow: /tmp/*」 or 「Disallow: *.gif」這樣的記錄出現。
③ 如何建立自己的網站
1 你說的有問題 應該是iis
2 如果你有空間 直接上傳到空間就可以了 會有一個 二級域名 通過這個域名就可以訪問了
3 是的自己的電腦做伺服器 才需要
④ 怎麼操作電腦開網站的
個人網站建設完全過程經驗
互聯網發現非常迅速,現在已經非常普及,很多朋友都建立個人網站的想法。現在說說我自己的建站經驗,希望能給大家一點幫助。
首先得提醒大家,建立個人網站需要花費較多的時間,不管你的網站內容是從網上採集或者原創,大家要有心理准備。下面說說詳細過程。
1、域名申請。
當你准備建站時,建議首先申請一個頂級域名,也就是域名要有「www」,如我的域名是http://www.6699fa.cn 。申請頂級域的網站可以到中國國家互聯網信息中心上找,裡面的網站都是正規的,域名的價錢各不相同,你可以多作比較,基本上是每年100元左右。而第一年一般都有優惠,如後綴是「.cn」的域名,有時第一年低至一元。
為什麼建議申請頂級域名呢?因為當你的網站有一定的訪問量以後,一般都會放置一些廣告來增加一點收入,而要申請廣告,一般都要求有頂級域名。
2、網站建設。
(1)確定好網站主題、內容。網站內容一般應該是自己熟悉的。自己不熟悉,網站內容很難豐富、充實。內容可以是自己原創,也可以從網上採集,但最好經過自己加工。當然,為了便於以後推廣自己的網站、能夠有效地提高網站的訪問量,也可以到網站搜索一下,看看哪些內容比較流行、訪問的人數比較多。
(2)網站製作。製作網站的工具一般是用fronpage和deamweaver。Fronpage比較簡單,功能上相對少一些,而deamweaver雖然稍微難一點,但功能強大,製作出的網站更加精美。如果你不會使用這兩個軟體,可以一邊學習一邊建站,學會這兩個軟體,你的網站也就建設起來了。Dreamweaver建站過程的教程,我的網站有。因為網站一般都有標志,標志一般都包含有域名,如果我們申請了域名,現在就可以設計標志了。
3、網站備案。
網站建好後,你要發布到互聯網上,必須先到國家信息產業部網站備案,備案後你的網站才合法。備案方法在我的網站上有「個人網站備案技巧」、 「個人伺服器網站備案注意問題」。國家信息產業部網站的地址:點擊我網站最下面的網站備案後就可以進入。當然,也可以一邊建站一邊申請備案,備案一般都要15天左右,但一定要確定好你網站的域名和網站名稱,一旦備案成功,想修改就很麻煩了。
4、申請空間。
網站完全建設完整後,就可以發布到互聯網上,有2種方法:
一是用個人電腦作為伺服器。這就需要保證你的電腦上網正常,否則別人訪問不了你的網站,那就沒有訪問量了。個人伺服器不用支出網站空間費用,但電腦需要24小時開著,要一定的電費。個人伺服器的設置方法參考我的網站上的
「IIS綁定域名詳細教程」。
二是上傳到空間。我們可以到空間服務商的網站申請收費空間或免費空間。收費空間相對穩定一點,質量好一點,當然也就需要不少的花費。免費空間相對要少一些,質量也稍微差一點,而且一般都有廣告,但不用開支,可以在網站找到。
域名邦定空間或個人伺服器相關經驗參考我網站上的。
5、上傳網站。
如果你使用的是空間,那麼就必須把你的網站內容上傳到空間,個人電腦就不用做這一步。把網站上傳到空間一般都使用專門的軟體,如「CuteFTP」,使用方法參考:「CuteFTP中文版教程」。
6、網站推廣。
我們辛辛苦苦建設起來的網站,如果沒有人訪問,那不是白費心機了。所以我們必須進行網站推廣,讓更多的人知道我們的網站,提高網站的訪問量。推廣的方法網上很多,我的網站上也有。這一步也很重要,互聯網上有成千上成的網站,別人很難訪問到自己的網站,所以也必須花較大的力氣推廣出去。
7、在網站上放置廣告。
建設一個個人網站,除了需要花費大量的時間外,還需要花去一定的費用,如上面說的域名費用、空間費用。當然,如果你使用的是網上免費的二級域名,這兩項費用就不需要了。但我總覺得,即使你是憑著自己的興趣建設起來的網站,反正網站已經建起來了,為何不能充分利用它來為自己增加一點收入呢。所以我還是建議你申請頂級域名,一開始我就說了,放置廣告一般需要頂級域名。所以,當你的網站有了一定的訪問量以後,即使你不在乎那一點點費用,還是可以考慮放置一點廣告上去來增加一點收入,不放置廣告就白白浪費了賺錢的機會。利用網站賺錢的方法網上多有介紹,我的網站也有。需要注意的是,廣告代碼一般都是html代碼,所以放置廣告需要懂一點html代碼知識,不難的,只要做簡單了解就可以了,這一點知識網上隨便就可以找到。
8、最後就是維護你的網站了。為了能夠不斷提高網站的訪問量,你必須經常更新網站,不斷充實、豐富網站的內容。
⑤ 如何用自己的電腦做伺服器搭建網站
下載appserv-win32-2.5.10;ZendOptimizer-3.3.3;點擊前面的開始建立環境。
步驟有點復雜,你最好去找相關教程。
建立好環境以後,上傳自己的建站程序。
這時,通常你訪問http://127.0.0.1就可以開始建站了。
⑥ 如何在自己電腦搭建網站
你算是問對人了。
作為資深的老站長,我來系統的回答你問的三個問題。
1.域名可以用花生殼嗎?如果不可以的那裡可以申請個可以做的域名啊?
2.做網站是用什麼空間的啊?用FTP嗎?
3.是用FTP我應該如何搭建啊?
1答:域名必須用花生殼,因為家裡寬頻是動態IP,我們這樣做是為了讓域名別名解析到殼域名上。這樣域名就能直接訪問你本地的源碼了。
2、不存在什麼空間,用你本地硬碟,無需任何FTP。FTP是遠程上傳伺服器的,所以用不到。
3、本地搭建環境就行了,ASP的直接用IIS就行,很簡單。
核心技術:首先家裡80埠大部分都是被F的,所以你還要用443埠,也就是網站HTTPS訪問,已經成為趨勢了。我經常遠程給客戶調試伺服器,這些都是輕車熟路了。
⑦ 一,如何搭建屬於自己的網站
步驟1:申請域名。
域名就是我們打開一個網頁時上面的網址,域名是需要購買的,可以從某寶買,也可以從一些專業網站買,把自己想注冊的域名先記錄到本子上,因為也許很多都已經被注冊過了,未注冊的域名才能購買。由於域名的價格普遍很便宜,所以建議大家到萬網上進行購買。
我隨手輸入了一個網址:hongxinghui,大家可以看到,域名的價格分別是4—88元/年不等,所以單從購買域名來說,其實只是一個很小的投入。
步驟2:購置伺服器,就是放你網站的地方。
如果你想做的網站很簡單或者說容量不是太大的話,我建議到阿里雲購買一個低配的雲ECS伺服器,一年的價格差不多在770左右。
步驟3:選擇建站程序
有自己的伺服器了,程序就是起到一個裝修的作用,就是看你想要打造一個什麼樣的程序,做博客有博客專門的程序,做企業站、論壇、分類信息等都有專門的程序,常用的建站程序有DZ(適合論壇)、織夢(適合展示)、WP(博客網站)、Z-bolg(博客網站)等,大家可以針對自己的需求,適當的選擇建站程序。做程序了解程序:如果網站沒有程序,以後上傳資料、圖片、更改信息比較麻煩。需要用製作工具才能修改。而有了程序後台,更改資料對於您來講,只需要會打字就可以更新網站。
步驟4:把程序導入空間
這里需要用到一個軟體:ftp。網路上能下載到,根據你購買的空間的信息,填寫之後即可連到你的空間里,這樣就能實現空間跟你電腦互通了,當然可以直接在空間面板根目錄里上傳這個建站程序的文件夾。
步驟5:伺服器綁定域名
這兩者必須綁定之後,你從瀏覽器輸入網址才會連接到網站,不同地方購買的綁定方式大同小異。
步驟6:程序的安裝
不同的程序安裝方式是不同的,你可以網路一下你所用的程序的安裝方法,安裝完成之後,一個簡陋的網站就算是完成了。
步驟7:安裝網站模板
如果你想要你的網站看起來更直觀,可以安裝一些網站模板上去,如果免費的模板,你覺得不行,可以到某寶上購買,價格很便宜,一般也就幾塊或十幾塊錢,可以永久使用,包安裝的話,可能需要多付十幾二十塊錢,有的店家為了得好評,也有免費幫安裝的。
⑧ 如何用最簡單的Python爬蟲採集整個網站
採集網站數據並不難,但是需要爬蟲有足夠的深度。我們創建一個爬蟲,遞歸地遍歷每個網站,只收集那些網站頁面上的數據。一般的比較費時間的網站採集方法從頂級頁面開始(一般是網站主頁),然後搜索頁面上的所有鏈接,形成列表,再去採集到的這些鏈接頁面,繼續採集每個頁面的鏈接形成新的列表,重復執行。
⑨ 如何在自己的電腦上搭建網站,具體怎麼操作
如果是本地用戶測試,你可以使用WINDOWS自帶的WEB發布工具,比較傻瓜的方法是使用fontpage打開站點,然後用發布向導發布。如果是在共網或區域網發布,方法不同。可以再咨詢吧。