A. 怎麼用VBA或網路爬蟲程序抓取網站數據
VBA網抓常用方法
1、xmlhttp/winhttp法:
用xmlhttp/winhttp模擬向伺服器發送請求,接收伺服器返回的數據。
優點:效率高,基本無兼容性問題。
缺點:需要藉助如fiddler的工具來模擬http請求。
2、IE/webbrowser法:
創建IE控制項或webbrowser控制項,結合htmlfile對象的方法和屬性,模擬瀏覽器操作,獲取瀏覽器頁面的數據。
優點:這個方法可以模擬大部分的瀏覽器操作。所見即所得,瀏覽器能看到的數據就能用代碼獲取。
缺點:各種彈窗相當煩人,兼容性也確實是個很傷腦筋的問題。上傳文件在IE里根本無法實現。
3、QueryTables法:
因為它是excel自帶,所以勉強也算是一種方法。其實此法和xmlhttp類似,也是GET或POST方式發送請求,然後得到伺服器的response返回到單元格內。
優點:excel自帶,可以通過錄制宏得到代碼,處理table很方便
。代碼簡短,適合快速獲取一些存在於源代碼的table里的數據。
缺點:無法模擬referer等發包頭
也可以利用採集工具進行採集網頁端的數據,無需寫代碼。
B. 請教高手,怎麼爬取網站歷年的數據
如果只是做收集數據使用,市面上有不少大數據採集器可以直接使用,不用花時間調試代碼,有一定邏輯思維能力就可以採集到數據,一般官方也會提供教程來做參考。
C. 如何爬取網站上的某一信息
兩類網站可以用不同的方法去爬取
一、開放API的網站
一個網站如果開放了API,那麼就可以直接GET到它的json數據。有三種方法可以判斷一個網站是否開放了API。
1、在站內尋找API入口;
2、用搜索引擎搜索「某網站API」;
3、抓包。有的網站雖然用到了ajax,但是通過抓包還是能夠獲取XHR里的json數據的(可用抓包工具抓包,也可以通過瀏覽器按F12抓包:F12-Network-F5刷新)。
二、不開放API的網站
1、如果網站是靜態頁面,那麼可以用requests庫發送請求,再通過HTML解析庫(lxml、parsel等)來解析響應的text;解析庫強烈推薦parsel,不僅語法和css選擇器類似,而且速度也挺快,Scrapy用的就是它。
2、如果網站是動態頁面,可以先用selenium來渲染JS,再用HTML解析庫來解析driver的page_source。
D. 如何用Python爬蟲抓取網頁內容
爬蟲流程
其實把網路爬蟲抽象開來看,它無外乎包含如下幾個步驟
模擬請求網頁。模擬瀏覽器,打開目標網站。
獲取數據。打開網站之後,就可以自動化的獲取我們所需要的網站數據。
保存數據。拿到數據之後,需要持久化到本地文件或者資料庫等存儲設備中。
那麼我們該如何使用 Python 來編寫自己的爬蟲程序呢,在這里我要重點介紹一個 Python 庫:Requests。
Requests 使用
Requests 庫是 Python 中發起 HTTP 請求的庫,使用非常方便簡單。
模擬發送 HTTP 請求
發送 GET 請求
當我們用瀏覽器打開豆瓣首頁時,其實發送的最原始的請求就是 GET 請求
import requests
res = requests.get('http://www.douban.com')
print(res)
print(type(res))
>>>
<Response [200]>
<class 'requests.models.Response'>
E. 如何爬蟲網頁數據
爬取網頁數據原理如下:
如果把互聯網比作蜘蛛網,爬蟲就是蜘蛛網上爬行的蜘蛛,網路節點則代表網頁。當通過客戶端發出任務需求命令時,ip將通過互聯網到達終端伺服器,找到客戶端交代的任務。一個節點是一個網頁。蜘蛛通過一個節點後,可以沿著幾點連線繼續爬行到達下一個節點。
簡而言之,爬蟲首先需要獲得終端伺服器的網頁,從那裡獲得網頁的源代碼,若是源代碼中有有用的信息,就在源代碼中提取任務所需的信息。然後ip就會將獲得的有用信息送回客戶端存儲,然後再返回,反復頻繁訪問網頁獲取信息,直到任務完成。
F. 如何爬取網頁表格數據
網頁里的表格數據可以用爬蟲比如python去採集,也可以用採集器去採集網頁上的表格數據會更簡單些。
G. 從網站抓取數據的3種最佳方法
1.使用網站API
許多大型社交媒體網站,例如Facebook,Twitter,Instagram,StackOverflow,都提供API供用戶訪問其數據。有時,您可以選擇官方API來獲取結構化數據。如下面的Facebook Graph API所示,您需要選擇進行查詢的欄位,然後訂購數據,執行URL查找,發出請求等。
2.建立自己的搜尋器
但是,並非所有網站都為用戶提供API。某些網站由於技術限制或其他原因拒絕提供任何公共API。有人可能會提出RSS提要,但是由於限制了它們的使用,因此我不會對此提出建議或發表評論。在這種情況下,我想討論的是我們可以自行構建爬蟲來處理這種情況。
3.利用現成的爬蟲工具
但是,通過編程自行爬網網站可能很耗時。對於沒有任何編碼技能的人來說,這將是一項艱巨的任務。因此,我想介紹一些搜尋器工具。
Octoparse是一個功能強大的基於Visual Windows的Web數據搜尋器。用戶使用其簡單友好的用戶界面即可輕松掌握此工具。要使用它,您需要在本地桌面上下載此應用程序。
http://Import.io也稱為Web搜尋器,涵蓋所有不同級別的搜尋需求。它提供了一個魔術工具,可以將站點轉換為表格,而無需任何培訓。如果需要抓取更復雜的網站,建議用戶下載其桌面應用程序。構建完API後,它們會提供許多簡單的集成選項,例如Google Sheets,http://Plot.ly,Excel以及GET和POST請求。當您認為所有這些都帶有終身免費價格標簽和強大的支持團隊時,http://import.io無疑是那些尋求結構化數據的人的首要選擇。它們還為尋求更大規模或更復雜數據提取的公司提供了企業級付費選項。
關於從網站抓取數據的3種最佳方法,該如何下手的內容,青藤小編就和您分享到這里了。如果您對大數據工程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關於數據分析師、大數據工程師的技巧及素材等內容,可以點擊本站的其他文章進行學習。
H. 請問如何把網站的數據抓取下來
可以藉助採集器軟體,即使不懂代碼也能採集網頁上的數據,然後導出excel
I. 好大夫網站的數據怎麼爬
首先來看下好大夫這個站給人第一印象如何:
1,用網站測速軟體測試了下,無論電信還是網通,速度都相當的不錯,截圖看下,最長1.59秒,最短0.28秒左右平均0.74秒,記得國平老師在網速是如何影響SEO效果的文章里詳細說明了這個速度對搜索引擎對用戶是何等的重要,此為第一關。應該說做的很不錯。
再來用Pagespeed分析下,得分82分,,在部分排版圖片方面和圖片壓縮方面可以繼續提高下。用pagespeed所提醒的處理方法就可以解決這里所顯示的問題,對提高頁面打開速度很有好處。
從haodf.com返回的頭部代碼里我們實際上可以看到一些不曾注意的信息
這個頭文件里有一條是:X-Cache: HIT cache22.haodf.com,還有兩條信息是X-Proxy: 22
從地址cache22.haodf.com我們可以發現,這是緩存地址,也就是說,打開首頁如此之快是緩存在起作用,應該是負載平衡
系統在起作用,負載相對小的提供了本次訪問所需要的數據。
實際上通過ping chache22.haodf.com和www.haodf.com所得到的IP地址不同就可以說明一些問題:
這個IP地址段通過查詢是北京電信通所提供的。
這里的X-Cache: HIT cache22.haodf.com是緩存技術無疑,具體如何的細節了解可以去搜索下,相關技術文章解釋的挺清楚。
2,再來看下域名haodf.com的相關信息:
Created: 2004-08-07 00:00:00
Expires: 2018-08-07 12:08:16
Last Modified: 2008-09-02 19:45:11
04年注冊,08年續費時一次性續費十年,老域名。
3,再來看看自從域名注冊了之後,此站是否一直是做醫療類的內容呢?看歷史記錄數據來回答你心中的疑問:
各位可以去infomall.cn里查詢下看此站的歷史界面,可以發現,雖然04年注冊,但是直到06年左右才開始做醫療類的信息的,之前做的都是網址大全
點開05-5-14的樣子看下
,
名字和內容是地地道道的網址大全,在後來的06-11-12日的樣子已經是醫療方面的信息了,
具體哪個時間開始做的也許只有當事人了解了。
看完了其歷史和整體信息,下面來分析下網站
首先是首頁。
首頁里一些明顯優化的因素都不存在,首頁沒有任何H1 H2 H3標簽,首頁沒有nofollow,全部鏈接都是有效鏈接沒有用JS隱藏,連最下面鏈到備案地址的鏈接也是如此。
網站title description keywords(可有可無)的數據分別是:
最重要的標題部分是:好大夫在線_中國最大的醫療網站
結構是 品牌_行業解釋
這里的title沒有堆砌任何關鍵字,比如疾病名稱、比如葯物名稱、比如醫院名稱等,就是說明自己的品牌:好大夫在線,及好大夫在線是中國最大的醫療網站
關鍵字部分可有可無,加了可以增加品牌關鍵字密度
描述部分是詳細說明網站所提供的服務。這里對品牌的強調有點可以學習的是:前面出現的是&#8220;好大夫在線,中國最大的醫療網站。&#8221;緊接著出現的是&#8220;好大夫提供...&#8221;,將好大夫在線和好大夫分別強調一下,以增強品牌。
這里的首頁部分安排實際上對大站來說是最合理的,因為首頁只需要解決用戶慕名而來也就是直接搜索好大夫或者好大夫在線即可,那麼多的疾病名稱醫院名稱什麼的可以直接交給數量龐大的內頁來完成,從而很好的把權重內移,共同取得排名和流量。
復制代碼
接著來分析下整個首頁的HTML代碼傳達了怎麼樣的優化手法:
一些可能影響網站打開速度的都用其他的方法來規避了:1,就是外部CSS文件、JS文件和排版圖片可以充分保證主站打開時HTML代碼可以出來,外部CSS也同時被用戶自己的瀏覽器調用來加速頁面打開速度。
同時,我們PING 下看hdfimg.com域名
可以發現,其IP地址和主站及緩存類的是在一個IP地址段,也就是都在219.238.150這個段IP地址里,應該是同一個機房另一台機器專門在處理CSS、JS和排版圖片。
分工明確的幾台伺服器同時處理用戶的需求加速了網站打開的時間,不錯!
(也考慮過是一台大伺服器捆綁了多個IP地址,不過想來這么大的站應該會分工非常明確,將大問題化為很多小的問題來逐個優化達到總體效果最佳,也便於故障時進行排查)
除了CSS、JS、排版圖片是單獨用hdfimg.com域名來提供數據,另一個圖片出現的情況就是新聞文章或者產品或者介紹等等正文里出現,那麼這種圖片haodf是如何處理的呢?
通過查看源代碼,直接發現了另一個域名:n1.haodf.com,是存放的醫生的頭像。
從以上這兩個域名hdfimg.com和n1.haodf.com的分析可以看出,好大夫在影響網站打開速度方面的處理真是細致入微,將可能的外在因素全部解決,值得學習!
復制代碼
再仔細檢查每個鏈接,可以發現,很多內容性的東西,全部採用二級域名來跑。
比如某個醫生的訪問地址是drsunkun.haodf.com,其中drsunkun是醫生注冊的用戶名。
某個地區的訪問地址比如江蘇:jiangsu.haodf.com,其他省區的類似,均才用二級域名的形式來跑。
而疾病名稱、醫院名稱、咨詢信息、專家文章、看病經歷、感謝信都沒有使用二級域名,而是直接以www.haodf.com/二級目錄名/頁面名.htm
這里二級目錄名總共有這幾個:hospital表示醫院,faculty表示醫院科室,jibing表示全部疾病,zhuanjiaguandian是專家文章觀點,wenda是咨詢問答,doctor是看病經驗和感謝信,info是聯系信息及自我介紹。
頁面名中醫院的名稱是隨機生成的名字,疾病那裡是疾病的拼音,問答那裡是醫生拼音_隨機數字,這里的頁面名除了疾病名稱可能有人搜索拼音之外醫生名醫院名和問答沒有規律可言對整體沒有影響。
疾病名稱用拼音搜索時網路也會提醒你是搜索的可能是什麼中文內容,比如搜索buyunbuyu,網路就知道你搜索的是不孕不育,所以目錄里的拼音對優化的作用可以不必太過考慮,但對用戶的友好度還是不錯的,看拼音總比看一堆亂七八糟的隨機字母數據要舒服的多。
復制代碼
三級目錄有:匯總了各種疾病所對應不同醫院的醫生,省區醫院列表更多
使用二級域名的總共有:省區所包含醫院、網上咨詢、預約、醫生注冊帳號、權威專家觀點專題、400咨詢、幫助等等
沒有完全全部羅列出來,僅以目前以上的數據來分析下,為什麼這么安排。
為什麼一些數據使用二級域名一些數據還是在主域名下用二級目錄來存放,原因應該就是跟流量有關。
為此,我們通過實際數據來說明下放目錄下的流量和放二級目錄下的流量對比。
拿出火車頭採集愛站里前50頁總計1250條記錄,可以發現
二級域名無論在排名還是流量搜索量方面都比根目錄下的要少的多的多
復制代碼
附件是採集的愛站顯示出來的好大夫網址:
為何好大夫站要如此安排鏈接?說到底肯定是為了權重為了排名為了流量
我們來看下二級域名的頁面里都發生了些什麼:
先拿羅列了全部江蘇的醫院的二級域名jiangsu.haodf.com來看他的頁面里都發生了些什麼事情。
這個頁面里除了Head部分跟網站首頁一樣,之外,裡面都有哪些鏈接類型和內容呢?
1,全江蘇省各個市縣的醫院,裡面鏈接的目的地由醫院、問答、醫院科室、醫生鏈接(二級域名)、醫生評價、咨詢(二級域名)、全國地區導航(二級域名),而醫院、問答類所佔篇幅是最大的。
2,再看數量巨大的醫生的二級域名頁面都含有什麼樣的數據:專家觀點的文章二級目錄類的、問答咨詢也是二級目錄類的、醫生主治的疾病名稱鏈接還是二級目錄類的
3,再看下400.haodf.com咨詢類的頁面,鏈接主要是去此醫生二級域名頁下的咨詢頁,那麼進入此二級域名頁下的咨詢頁查看,可以看到,這里的鏈 接主要類型是:其他醫生二級域名頁、醫生自己的二級域名頁、問答咨詢頁二級目錄類、相關專題文章二級域名類以及此疾病相關的推薦醫院二級目錄類的。
看完網站鏈接結構,我們來看下內容以及外鏈部分。
搜索一個競爭壓力山大的詞&#8220;整形&#8221;,在網路里排第一,鏈接地址是www.haodf.com/jibing/zhengxing.htm,我們來看下這個詞的頁面內容。首先看下H1 H2,這里好大夫竟然使用了3個H1,大站里第一次見過同時使用3個H1的,截圖如下
三個H1的標簽寫法是:
<h1>整形專家觀點</h1>
<h1>相關疾病-<span title="整形">整形</span></h1>
<h1>最近在線大夫-<span title="整形">整形</span></h1>
H2部分寫法是:
<h2> <a href="http://www.haodf.com/jibing/zhengxing.htm" title="整形首頁">整形</a> <span class="font16" style="color:#000;"></span></h2>
<H1>部分強調整形,同時使用小技巧<span>的title標簽來加強關鍵字,提升關鍵字密度和頻率。
復制代碼
整個頁面里&#8220;整形&#8221;這個詞出現的非常頻率非常之高,同時分布也很平均,從左到右從上到下,不斷的進行重復和強調。
復制代碼
標題里出現兩次,正文部分出現88次,描述里出現1次。那麼再分析下此頁的外鏈情況:122929,12萬多的鏈,除去站內的再算下看:1218
12萬多的鏈接全部是來自內部!而剩餘的1218純外部鏈接中,有80%以上都是別的站的文章頁,也就是通過轉載好大夫的文章而自然產生外鏈,轉載的站大部分都是跟醫療整形有關的,多麼高質量的相關站鏈接,指向的目標頁面又是驚心優化的,想沒有好的排名也難啊!
復制代碼
分析好大夫站發現,通常建議的1個H1 多個H2 H3 H4的規律在這里並不適用,好大夫的一些排名靠前的頁面里,使用H1跟使用H2 H3一樣,同時使用就是幾個,如圖醫院介紹主頁
四個H1當作H2來使用。