Re: [問題] 萊爾富門市爬蟲 踢到鐵板

看板Python作者 (多奇狗)時間5年前 (2020/05/10 00:07), 編輯推噓3(300)
留言3則, 3人參與, 5年前最新討論串2/2 (看更多)
※ 引述《somehog (低進)》之銘言: : 各位大大好,遇到一個鐵板, : 可能跟程式語言比較沒關係, : 專案需要定期抓萊爾富的全部所有門市, : 找到其官網門市查詢所在位置, : https://www.hilife.com.tw/storeInquiry_street.aspx : 大約看一下網頁原碼, : 應該是ASP.Net & WebForm無誤, : GET跟POST都是這一支, : 所以邏輯思路如下: : 方法1: : 先用GET不帶參數發出Request, : 取得回傳網頁後,剖析取出 : __VIEWSTATEGENERATOR : __EVENTVALIDATION : __VIEWSTATE : __EVENTTARGET : __EVENTARGUMENT : __LASTFOCUS : 等等數值, : 然後塞入POST內, : 再填入自訂的縣市CITY與鄉區AREA後, : 發出Request, : 台北市全區沒問題, : 都可以取得門市資料, : 但詭異的是: : 其他縣市與鄉區卻直接拒絕連結.....!!?? : 試用方法2 : 先用GET取得__VIEWSTATE值之後, : 再發出台北市中山區的POST, : 得到正常回傳結果後再取一次全部__VIEWSTATE值, : 然後再塞入,填上新北市林口區再發出POST, : .....一樣失敗,拒絕連結! : 試用方法3 : 把GET取得__VIEWSTATE值, : 手工寫入靜態HTML網頁內的FORM input內, : 指定雲林縣虎尾鎮 : 然後按submit post出去, : .........成功正常回傳 : 感覺有點崩潰,沒頭緒.... : 猜想因為台北市是default頁, : 所以沒有設檢查, : 不瞭解ASP.Net的後端作法, : 有大大可以提供解法建議嗎? : 感恩~ 我很討厭這種架構 你在網頁上的每個動作都要丟一個req,如果你要做2個動作 就要丟2個 如果做很多.... 我們如果要跳到基隆市的話 我們不知道基隆有什麼區,第一個封包只能做更動縣市的動作 我們的地區要使用台北的地區 第二個封包才能到基隆後才能選擇基隆的地區 附上gist 寫比較趕XD https://gist.github.com/takidog/447e2231691617cbb14b3a515f63ff1e 小弟只是喜歡爬蟲,很菜 code很臭 不要電我XDD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.130.234 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1589040451.A.CFE.html

05/10 09:01, 5年前 , 1F
推晚點研究一下
05/10 09:01, 1F

05/11 18:32, 5年前 , 2F
推一個
05/11 18:32, 2F

05/14 00:15, 5年前 , 3F
05/14 00:15, 3F
文章代碼(AID): #1UjjL3p- (Python)
討論串 (同標題文章)
文章代碼(AID): #1UjjL3p- (Python)