java 板


LINE

問個Joup抓google play網頁時遇到的問題,我想抓使用者曾經安裝過的app資料與這些 app的評分 ---------------------------------------------------------- 首先我參考 http://www.mkyong.com/java/how-to-automate-login-a-website-java-example/ 自動登入使用者的gmail帳號 ---------------------------------------------------------- 接著我用以下程式碼只抓到了前19支app的資料 Document doc = (Document) Jsoup.connect("https://play.google.com/apps").get(); Elements ids = doc.select("a.title"); for(int i = 0; i < ids.size(); i++) { System.out.println(ids.get(i).ownText()); System.out.println("-------------------------------------"); } ---------------------------------------------------------- 於是我就用firefox觀察什麼時後載入後面的app,發現是如附圖所示的 POST時載入的,POST其中有兩個參 pageTok=CgQIARAU:S:ANO1ljIHHao & token=oRGw3hsIH91sA88DIpRqvLkbTAQ:1443001966556 是我用jsoup發POST前我必須要先知道的。 --------------------------------------------------------- 參數pagTok我從 Document doc = (Document) Jsoup.connect("https://play.google.com/apps").get(); 這行回傳的html裡面的某個<script>中的變數中找到了,但token這個參數我找很久都找不到... --------------------------------------------------------- 我觀察到token每次POST都不一樣,但隨便用其中一個token都可以成功抓取所有app,但 每個使用者的token都不一樣,所以我還是必須知道如何取得token這個參數。 --------------------------------------------------------- 以下是我改寫後的程式碼,此程式碼可以抓完我自己所有曾安裝的app,不知道有沒有高 手處理過這種問題,或是有其他方法能抓到我需要的資料,感謝各位~~~ int count=0; Document doc = (Document) Jsoup.connect("https://play.google.com/apps").get(); Elements ids = doc.select("a.title"); Elements scripts = doc.select("script"); String pagTok = scripts.get(12).toString().split("\\\\42")[3]; String token="oRGw3hsIH91sA88DIpRqvLkbTAQ:1443001966556"; for(int i = 0; i < ids.size(); i++) { System.out.println(ids.get(i).ownText()); Document document = (Document) Jsoup.connect("https://play.google.com/store/apps/details?id="+ids.get(i).attr("href").split("=")[1]).get(); Elements pkg = document.select("div.review-stars-container"); System.out.println(pkg.select("div.tiny-star").attr("aria-label")); System.out.println("-------------------------------------"); count++; } while (true){ Document doc1 = (Document) Jsoup.connect("https://play.google.com/apps?pagTok=" + pagTok + "&token="+token).post(); Elements ids1 = doc1.select("a.title"); scripts = doc1.select("script"); for(int i=0; i < ids1.size(); i++) { System.out.println(ids1.get(i).ownText()); Document document = (Document) Jsoup.connect("https://play.google.com/store/apps/details?id=" + ids1.get(i).attr("href").split("=")[1]).get(); Elements pkg = document.select("div.review-stars-container"); System.out.println(pkg.select("div.tiny-star").attr("aria-label")); System.out.println("-------------------------------------"); count++; } if (scripts.get(12).toString().split("\\\\42").length==1) break; pagTok = scripts.get(12).toString().split("\\\\42")[3].replace("\\\\u003d", "%3D"); } } 首次發問,排版有點亂,請各位見諒~~~ --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.121.197.131
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1443076254.A.354.html
1F:推 ckknmark: pastebin 是你的好朋友 09/25 12:33







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP