照葫蘆畫瓢抓數據1:用sublime和網頁源代碼提取數據
終於開始正式爬取數據的學習啦,我是數據小白,只是看著大佬們傳授數據心得,終於下定決心開始學習。開個欄,寫寫學著造輪子的心得和遇到的問題,目標是爬蟲王~
之前看過一些專欄,前期目標是用現有工具收集數據/爬蟲,然後中期打好python html css SQL 基礎,後期從靜態網站開始,慢慢學動態、反反爬、多線程、攻克驗證碼(話說現在知乎都要點擊倒立字體來驗證登陸了T_T)。順道再學點數據分析可視化,中間會借鑒學習大佬們的經驗,也會遇到很多bug,還請大家多多指教
來正題,不會爬蟲怎麼獲取數據? @胖二
剛剛新鮮跟著學習的方法,比如這個,收集手機品牌信息,數據比較規整,可以右鍵查看網頁源代碼,然後copy到sublime上面;sublime支持正則表達式,找到想要的數據對應的源碼,例如:
<li><a href="/pioneer/" target="_blank"><img src="http://p.abcache.com/image/brand/pioneer.gif" alt="先鋒"/></a></li> 下面是另一行
<li><a href="/toshiba/" target="_blank"><img data-original="http://p.abcache.com/image/brand/toshiba.gif" alt="東芝"/></a></li>
這裡我自己試試發現一個問題,img 給了src 和 data-original 兩種屬性,所以照原先<li><a href=".+" target=".+"><img data-original=".+" alt=".+"/></a></li>的正則表達式篩選,會漏掉一些手機品牌信息,雖然不太懂,但是擴大一下範圍,改成<li><a href=".+" target=".+"><img .+ alt=".+"/></a></li>再試一下,就可以篩選全部的數據了。
然後find all, copy, 替換原代碼,再用<li><a href=".+" target="_blank"><img .+ alt="篩去刪除品牌前面的字元;用"/></a></li>全選篩除後續字元,就可以了。。。嗎???
出問題了,有多餘的非相關數據,如下:
回到源碼看一下:
這裡的均符合我們正則表達式的篩選規則,但是在alt="文本" 後多了width_="72" height="72" border="0"的額外參數設置,所以目前還要解決這個問題,是乾脆直接構建更精準的正則表達式呢?還是分次篩選刪除呢?還想請了解的大佬和原作 @胖二 不吝指點。
謝謝大家,有新方法我會更新,下期試試excel笨人複製網頁規整數據。
——————————————————————————————————————
親測有效笨方法:.+" width_="72" height="72" border="0再度找到多餘數據,全選刪除;
但是還是希望能有精確直接的方法,一步到位選擇所需數據,要啃正則表達式啦
推薦閱讀:
※網站建設—1 從擁有一個域名開始
※楊藝教你交誼舞【共216個=34+95+87網頁】
※一粟好友網頁分析1
※HTML
※(最新整理)國內網頁設計網站網址大全 - Web 開發 / HTML(CSS)