厲害的爬蟲技巧在這裡完全都沒有喔~~~
沒辦法誰叫我實在是嫩了!
抓取步驟(EX: 中央氣象局台北市氣溫預報)
第一步:
先到想去的網頁,記下網址(廢話)
http://www.cwb.gov.tw/V7/forecast/taiwan/Taipei_City.htmimport urllib2
到想抓的東西上反藍後「檢查元素」
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpR4oyt05OgU6Z4VYS_eVwUe2cke4yu8TyhbYe9CKZlq9G2qQhoeAx6C-hTr1Q8LYHSd3l8G4UbvDAU0xmARyW0__XGszBW3SXeAFTvH3mSqmFYuQPe80tndEen0cVcqtDLDqCabrpxCQ/s640/%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7+2013-09-09+%E4%B8%8B%E5%8D%889.32.52.png)
找到他的標籤
像我要找的這個東西的標簽就是「td」!!
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsapDXxI0-aSzWxkrMjyS4xW1nzNGNew_J73xyzBRTxz64g3FX81gMMAmzRXrp36n5cr7UmQVVB0dEilmEfyZDbUP06sdFJ4QT-MGGkmUXrK4DqPG749OmIkgKMWYCv_vP68-sGvyKG8g/s640/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2013-09-09+%25E4%25B8%258B%25E5%258D%25889.34.50.png)
然後把python打開
把該import的套件import(他們都是python內建的,算是非常仁慈)
然後繼承SGMLParser寫成一個叫做WeatherList的類別
『is_td』是SGMLParser內建的,因為我們要抓的東西是被「td」標簽的,所使在這裡是使用is_td,如果有不同需求也有is_a之類的可以使用。之後定義start_td和end_td函數,最後定義handle_data函數把被td標簽包住的東西全寫進name裡面。
import urllib2 from sgmllib import SGMLParser class WeatherList(SGMLParser): is_td="" name=[] def start_td(self, attrs): self.is_td = 1 def end_td(self): self.is_td="" def handle_data(self, text): if self.is_td: self.name.append(text)
寫完之後就可以開始抓囉!
content = urllib2.urlopen('http://www.cwb.gov.tw/V7/forecast/taiwan/Taipei_City.htm').read() Tempreature = WeatherList() Tempreature.feed(content) for i in Tempreature.name: if '\t' not in i: print i.decode('utf-8')首先先用urllib2的工具把目標網頁上的東西抓下來
然後把name裡的東西排除不要的東西(「\t」這種東西就別來亂了)
再把東西印出來,就可以囉~~
26 ~ 30 舒適至悶熱 0 % 26 ~ 34 舒適至易中暑 0 % 26 ~ 30 舒適至悶熱 0 % 31.1 24.8 360.5 05:38 18:05 08:53 20:27 °C °F
作者已經移除這則留言。
回覆刪除作者已經移除這則留言。
刪除作者已經移除這則留言。
刪除作者已經移除這則留言。
刪除您好: 想請教一下,若在讀取 t d 時遇到 & nbsp
回覆刪除如何讓他印出來為"-",而不是跳過,我卡在讀完資料後因為有& nbsp導致在判斷換行時有誤
請求大師解惑
THX
作者已經移除這則留言。
刪除簡單來說就是td 與/td 裡面有空白符號,導致我無法正確換行
刪除