Re: [閒聊] 這個要怎麼parse...

看板Python作者 (( ̄ー+ ̄)キラリ)時間12年前 (2012/04/19 11:57), 編輯推噓2(209)
留言11則, 6人參與, 最新討論串3/7 (看更多)
※ 引述《ilay (說唱猜做玩)》之銘言: 引言吃光~~ 主要還是需要cookies,不然直接request會有權限不足的問題 直接從 http://emap.pcsc.com.tw/01.htm 連的話, 網頁會出現"連線逾時"的頁面, 所以,要從http://www.7-11.com.tw/search.asp開始 這邊會向http://emap.pcsc.com.tw/emap_switch.aspx POST資料+redirect cookie也是從這邊取得的 當取得到cookie後,就可以去取得你要的xml資料 以下是我寫的一個範例:(只抓取各縣市的鄉鎮 GetTown) # -*- coding: utf-8 -*- import urllib, urllib2, cookielib # origin url: "http://www.7-11.com.tw/search.asp" # get cookies from "http://emap.pcsc.com.tw/emap_switch.aspx" data = { 'eshopparid': '999', 'eshopid': '996', 'eshoppwd': '711storemap', 'sid': '2', 'storecategory': '2', 'showtype': '1', 'storeid': '' } cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) login_data = urllib.urlencode(data) opener.open('http://emap.pcsc.com.tw/emap_switch.aspx', login_data) #print cj._cookies #print cj._cookies['emap.pcsc.com.tw']['/']['yearmonth'].value #print cj._cookies['emap.pcsc.com.tw']['/']['ASP.NET_SessionId'].value # area code area_code = { '台北市': '01', '基隆市': '02', '新北市': '03', '桃園縣': '04', '新竹市': '05', '新竹縣': '06', '苗栗縣': '07', '台中市': '08', '台中縣': '09', '彰化縣': '10', '南投縣': '11', '雲林縣': '12', '嘉義市': '13', '嘉義縣': '14', '台南市': '15', '台南縣': '16', '高雄市': '17', '高雄縣': '18', '屏東縣': '19', '宜蘭縣': '20', '花蓮縣': '21', '台東縣': '22', '澎湖縣': '23', '金門縣': '25', '馬祖' : '24' } # start req some data # GET TOWM for i in area_code: data = { 'commandid': 'GetTown', 'cityid': area_code[i] } post_data = urllib.urlencode(data) resp = opener.open('http://emap.pcsc.com.tw/EMapSDK.aspx', post_data) print i, resp.read() 大致上是這樣,有錯誤的地方再提出來討論 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.74.124.193

04/19 13:45, , 1F
神人出現了 <(_ _)>
04/19 13:45, 1F

04/19 16:38, , 2F
請問一下撈出來的xml要取區域名稱堆成list要怎做呢@@
04/19 16:38, 2F

04/19 16:48, , 3F
這就要parsing xml吧
04/19 16:48, 3F

04/19 17:17, , 4F
04/19 17:17, 4F

04/20 00:40, , 5F
實用
04/20 00:40, 5F

04/21 14:33, , 6F
高手
04/21 14:33, 6F

04/22 03:55, , 7F
04/22 03:55, 7F

04/22 10:45, , 8F
對了我發現為什麼loop跑下去的時候是從桃園開始XD
04/22 10:45, 8F

04/22 10:45, , 9F
北北基都消失了XD
04/22 10:45, 9F

04/22 10:47, , 10F
抱歉看錯了 但是這為什麼不是照順序跑下來的@@
04/22 10:47, 10F

04/22 16:26, , 11F
要照順序用list或OrderedDict
04/22 16:26, 11F
文章代碼(AID): #1FZuqk4p (Python)
討論串 (同標題文章)
文章代碼(AID): #1FZuqk4p (Python)