厲害的爬蟲技巧在這裡完全都沒有喔~~~
沒辦法誰叫我實在是嫩了!
抓取步驟(EX: 中央氣象局台北市氣溫預報)
第一步:
先到想去的網頁,記下網址(廢話)
http://www.cwb.gov.tw/V7/forecast/taiwan/Taipei_City.htmimport urllib2
到想抓的東西上反藍後「檢查元素」
找到他的標籤
像我要找的這個東西的標簽就是「td」!!
然後把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 裡面有空白符號,導致我無法正確換行
刪除