作者jack155861 (蕭)
看板R_Language
標題Re: [問題] 相關爬蟲問題
時間Sun Jun 4 21:56:59 2017
※ 引述《jack155861 (蕭)》之銘言:
: [問題類型]:
:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
:
: [軟體熟悉度]:
:
: 使用者(已經有用R 做過不少作品)
:
: [問題敘述]:
:
: 之前爬蟲都是用html網頁型態,最近遇到一個是需要先點選選單才能查詢資料的ASP網頁,
: 如下
: http://fhy.wra.gov.tw/ReservoirPage_2011/StorageCapacity.aspx
: 假設我要載:水庫>2017/6/4 像這樣的資料時,他的網址並不會跟著變動
: 要使用怎樣的語法會比較恰當
: 請各位指點一下~"~
:
各位好
謝謝C大的說明 然後我又在網路上看到一個教學 他這個教學跟我網站的形式有點類似
網址如下:
http://leoluyi.logdown.com/posts/406397-crawler-mops-2
我把我要爬蟲的網站 看了他的程式碼 他是屬於form data 如下圖
http://imgur.com/a/Vy7mw
依照上面教學網址是要把form data的資料都放到R的函數理頭
res <- POST(
"
http://fhy.wra.gov.tw/ReservoirPage_2011/StorageCapacity.aspx",
body = "XXXXX",
encode = "form")
但是怎樣跑都跑不出來 跑的都是最新(2017/6/4)的資料
若我body只放以下這些有影響的參數也是如此
ctl00$cphMain$cboSearch:防汛重點水庫
ctl00$cphMain$ucDate$cboYear:2017
ctl00$cphMain$ucDate$cboMonth:6
ctl00$cphMain$ucDate$cboDay:2
請問各位大大 有哪裡用錯了嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.202.207
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1496584622.A.D2C.html
1F:推 seimwiwa: 注意VIEWSTATE 06/05 21:14
2F:→ jack155861: 請問s大 要如何處理VIEWSTATE那一長串的資料ㄚ 06/06 00:03
3F:推 bluecadence: 你要先 get 主頁 http (你文章裡面的http),在主頁的 06/06 00:24
4F:→ bluecadence: 內容中先撈出 __VIEWSTATE 和 __VIEWSTATEGENERATOR 06/06 00:24
5F:→ bluecadence: 的值,之後抓不同的日期需要 post 這些參數 06/06 00:25
6F:→ bluecadence: 另外搞不好需要保留cookies使用cookies (我不確定, 06/06 00:27
7F:→ bluecadence: 我沒實際去抓你這網頁) 06/06 00:27
8F:→ jack155861: B大 _viewstate那些我都有放了 還是無法 06/06 10:38
9F:→ jack155861: 保留cookies使用cookies 這個是啥意思 06/06 10:38
11F:→ jack155861: 有類似的東西 但她好複雜 我在瞧瞧 06/06 10:39
12F:→ bluecadence: 也是一樣 造訪主頁後,把 cookies 存起來,之後爬資料 06/06 11:27
13F:→ bluecadence: 要用這些cookies 試試看吧 06/06 11:27
14F:推 seimwiwa: 這個只需要以正則表達式先取得viewstate即可 06/06 15:55
15F:→ jack155861: 謝謝各位 我爬爬爬爬爬 出來了 06/06 17:44
16F:→ bluecadence: 那個cookies是google analytics在用的 應該是用不上 06/06 17:52
17F:→ bluecadence: 剛看了一下除了日期,另外兩個必要的參數是 06/06 18:05
18F:→ bluecadence: __VIEWSTATE 和 __EVENTTARGET 06/06 18:06
19F:推 seimwiwa: 恭喜你印象中2001年開始才有紀錄,全部爬完應該要花點 06/06 19:16
20F:→ seimwiwa: 時間 06/06 19:16
21F:→ jack155861: 其實蠻快的 06/07 08:40