做爬蟲需要什麼配置筆記本
1. 爬蟲對筆記本的要求
現如今在許多linux和UNIX的版本中默認已經自帶了python的安裝版本。比如如果你的筆記本上裝了Ubuntu操作系統的話,打開終端直接輸入python,那麼恭喜你,你可以直接使用Python了。如今,某些Windows預裝的台式機(比如某些HP伺服器)也都預裝了Python. 因此Python安裝時所需資源非常低。如果筆記本上是Windows/Mac, 直接去Python的官網下載所需版本,直接安裝也就好了。現在的筆記本配置運行Python程序都綽綽有餘的。即使是早期的電腦配置如奔騰處理器時代,256 m 內存或者512內存即可,20g以上硬碟, 跑起Python都不費力。
希望以上得回答能夠幫助你。
2. 怎麼選擇一款適合大學生的筆記本
可以通過這幾個方面考慮
看自己的所選專業,所學課程是不是需要電腦,要什麼樣的電腦
像是計算機{信息}專業,土木專業的高性能的筆記本的標配。計算機專業需要學習編程,爬蟲。土木需要用電腦繪制大量的專業圖紙。如果沒有好的電腦,可能在你做作業的時候電腦崩潰,你就要從頭來過
看自己需要,
在滿足專業需要時,自己如果只是需要看看視頻,娛樂一下普通電腦足夠用,如果是玩游戲,對配置要求高,那就買高配的
看預算
筆記本有好幾個檔位,根據預算購買
3. 為什麼macbook可以運行爬蟲
在macbook爬蟲演練方便。MacBook是2015年蘋果公司出品的筆記本電腦,因為在macbook演練爬蟲方便,直接到VPS上操作文件效率不高,所以無論是MAC還是WINDOWS,都在本地安裝和調試。
4. 做分布式爬蟲和搜索引擎對於伺服器配置有什麼要求
實驗室用的爬蟲和搜索引擎的伺服器不能低於 4核心~8核心的,內存越大越好。
因為爬蟲和搜索引擎對CPU計算能力要求高,對內存的存儲能力要求大。
5. python爬蟲常用解析庫lxml、pyquery、bs4、re執行效率對比
我們知道python爬蟲的解析庫有很多,我們選取了lxml,bs4,re,pyquery,進行測試。
測試環境:本人用的是台式電腦進行的測試,win10系統配置為i5,16G內存(ddr3),不同的電腦跟網路環境直接影響解析速度,在相同的環境下,時間浮動不會太大
6. 什麼網路爬蟲
多次被人問到這個問題,看來需要做一點說明,這里簡單介紹一下搜索引擎的機器爬蟲的製作和一些基本要注意的事項。
說的簡單易懂一些,網路爬蟲跟你使用的〖離線閱讀〗工具差不多。說離線,其實還是要跟網路聯結,否則怎麼抓東西下來?
那麼不同的地方在哪裡?
1】 網路爬蟲高度可配置性。
2】 網路爬蟲可以解析抓到的網頁里的鏈接
3】 網路爬蟲有簡單的存儲配置
4】 網路爬蟲擁有智能的根據網頁更新分析功能
5】 網路爬蟲的效率相當的高
那麼依據特徵,其實也就是要求了,如何設計爬蟲呢?要注意哪些步驟呢?
1】 url 的遍歷和紀錄
這點 larbin 做得非常的好,其實對於url的遍歷是很簡單的,例如:
cat [what you got]| tr \" \\n | gawk '{print $2}' | pcregrep ^http://
就可以得到一個所由的 url 列表
2】多進程 VS 多線程
各有優點了,現在一台普通的PC 例如 booso.com 一天可以輕松爬下5個G的數據。大約20萬網頁。
3】時間更新控制
最傻的做法是沒有時間更新權重,一通的爬,回頭再一通的爬。
通常在下一次爬的的數據要跟上一次進行比較,如果連續5次都沒有變化,那麼將爬這個網頁的時間間隔擴大1倍。
如果一個網頁在連續5次爬取的時候都有更新,那麼將設置的爬取時間縮短為原來的1/2。
注意,效率是取勝的關鍵之一。
4】爬的深度是多少呢?
看情況了。如果你比較牛,有幾萬台伺服器做網路爬蟲,我勸您跳過這一點。
如果你同我一樣只有一台伺服器做網路爬蟲,那麼這樣一個統計您應該知道:
網頁深度:網頁個數:網頁重要程度
0 : 1 : : 10
1 :20 : :8
2: :600: :5
3: :2000: :2
4 above: 6000: 一般無法計算
好了,爬到三級就差不多了,再深入一是數據量擴大了3/4倍,二是重要度確下降了許多,這叫做「種下的是龍種,收獲的是跳蚤。」
5】爬蟲一般不之間爬對方的網頁,一般是通過一個Proxy出去,這個proxy有緩解壓力的功能,因為當對方的網頁沒有更新的時候,只要拿到 header 的 tag就可以了,沒有必要全部傳輸一次了,可以大大節約網路帶寬。
apache webserver裡面紀錄的 304 一般就是被cache的了。
6】請有空的時候照看一下robots.txt
7】存儲結構。
這個人人見智,google 用 gfs 系統,如果你有7/8台伺服器,我勸你用NFS系統,要是你有70/80個伺服器的話我建議你用afs 系統,要是你只有一台伺服器,那麼隨便。
給一個代碼片斷,是我寫的新聞搜索引擎是如何進行數據存儲的:
NAME=`echo $URL |perl -p -e 's/([^\w\-\.\@])/$1 eq "\n" ? "\n":sprintf("%%%2.2x",ord($1))/eg'`
mkdir -p $AUTHOR
newscrawl.pl $URL --user-agent="news.booso.com+(+http://booso.com)" -outfile=$AUTHOR/$NAME
Posted at November 10, 2004 01:04 PM by Liang at 01:04 PM | Comments (2) | TrackBack(0) | Booso!|
7. 如何用Python做爬蟲
在我們日常上網瀏覽網頁的時候,經常會看到一些好看的圖片,我們就希望把這些圖片保存下載,或者用戶用來做桌面壁紙,或者用來做設計的素材。
我們最常規的做法就是通過滑鼠右鍵,選擇另存為。但有些圖片滑鼠右鍵的時候並沒有另存為選項,還有辦法就通過就是通過截圖工具截取下來,但這樣就降低圖片的清晰度。好吧其實你很厲害的,右鍵查看頁面源代碼。
我們可以通過python來實現這樣一個簡單的爬蟲功能,把我們想要的代碼爬取到本地。下面就看看如何使用python來實現這樣一個功能。
8. Python爬蟲與mac下Scrapy配置
用Python開發爬蟲很方便。
本質:抓取---分析---存儲
要點:
(1)get請求:最基本抓取。用到 urllib urllib2 requests httplib2 。
(2)表單登陸:向伺服器發送post請求,伺服器再將返回的cookie存入本地
(3)使用cookie登陸:
(4)對於反爬蟲機制的處理:
(5)對於斷線重連:使用multi_session和multi_open對爬蟲抓取的session或opener進行保持
(6)多線程抓取
(7)對於Ajax請求
(8)自動化測試工具Selenium
由於 Linux下已經預裝了 lxml 和 OPENSSL
如果想驗證 lxml ,可以分別輸入
出現下面的提示這證明已經安裝成功
如果想驗證 open ssl,則直接輸入openssl 即可,如果跳轉到 OPENSSL 命令行,則安裝成功。
接下來直接安裝 Scrapy 即可
安裝完畢之後,輸入 scrapy
注意,這里linux下不要輸入Scrapy,linux依然嚴格區分大小寫的,感謝kamen童鞋提醒。
如果出現如下提示,這證明安裝成功
下面是stackoverflow上的高票解決辦法:
I've just fixed this issue on my OS X.
Please backup your files first.
Scrapy 1.0.0 is ready to go.
9. 分布式爬蟲需要用多台主機嗎
分布式爬蟲:將一個項目拷貝到多台電腦上,同時爬取數據。
1.必須保證所有電腦上的代碼是相同的配置。
2.在其中一台電腦上啟動redis和MySQL的資料庫服務。
3.同時將所有的爬蟲項目運行起來。
4.在啟動redis和MySQL的電腦上, 向redis中添加起始的url。
q = queue()
url = q.get() # 如果隊列是空的,那麼get()方法會一直阻塞,直到能取到url,才會繼續向下執行。
單機爬蟲:一台電腦運行一個項目。去重採用了set()和queue(),但是這兩個都是在內存中存在的。
1>其他電腦是無法獲取另外一台電腦內存中的數據的。
2>程序終止,內存消失。
分布式問題:
1.多台電腦如何統一的對URL進行去重?
2.多台電腦之間如何共用相同的隊列?多台電腦獲取的request,如何在多台電腦之間進行同步?
3.多台電腦運行同一個爬蟲項目,如果有機器爬蟲意外終止,如何保證可以繼續從隊列中獲取新的request,而不是從頭開始爬取?
前兩個問題可以基於Redis實現。相當於將set()和queue()從scrapy框架中抽離出來,將其保存在一個公共的平台中(Redis)。
第三個問題:scrapy_redis已經實現了,重啟爬蟲不會從頭開始重新爬取,而是會繼續從隊列中獲取request。不用擔心爬蟲意外終止。
