Re: [閒聊] 這個要怎麼parse...
※ 引述《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
04/19 16:38, 2F
→
04/19 16:48, , 3F
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
04/22 10:45, 8F
→
04/22 10:45, , 9F
04/22 10:45, 9F
→
04/22 10:47, , 10F
04/22 10:47, 10F
→
04/22 16:26, , 11F
04/22 16:26, 11F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 7 篇):
閒聊
2
10