努力不一定成功,但不努力一定很爽
前言
使用jsoup也有段時間了虾标,用的更多的偏模擬http請求方面寓盗,因為這個是爬蟲關鍵,數(shù)據(jù)都沒有還怎么解析。下面分享一些自己的使用心得傀蚌,有什么疑問基显,或者需改進的地方,歡迎交流善炫。
開始
- post提交數(shù)據(jù)的技巧撩幽,jsoup提交數(shù)據(jù)的方法有幾個(用過的)
- data?(String key, String value),數(shù)據(jù)多了箩艺,要一直.data窜醉,很麻煩
- data?(Map<String,String> data),其實只是封裝了下舅桩,數(shù)據(jù)多了酱虎,也要一直put
- data?(String... keyvals),("key","value","key","value") 這樣一直拼下去擂涛,
- requestBody?(String body)读串,【推薦】提交json格式的數(shù)據(jù),包括一般格式撒妈,比如"platform=1&edition=252&sign=....."恢暖,自己拼接好的字符串,直接扔進來即可狰右。
- 下載圖片杰捂,之前文章也提到過,默認下載1M棋蚌,設置大小用maxBodySize?(int bytes)
- BufferedInputStream bodyStream?() 大圖片嫁佳,美女寫真,自然景觀什么的
- byte[] bodyAsBytes?() 驗證碼之類的小圖片
- 忽略SSl谷暮,禁止重定向蒿往,忽略類型錯誤
- ignoreContentType(true) 忽略格式錯誤
- followRedirects(false) 禁止重定向
- validateTLSCertificates() 忽略SSl,TSL湿弦,雖然官方不推薦瓤漏,但是還是可以用
- 獲取cookie名字一樣時的問題。multiHeaders方法是1.11.1之后加的颊埃,解決了問題蔬充。* Added support for multiple headers with the same name in Jsoup.Connect
- String cookie?(String name) 獲取指定名字的cookie
- Map<String,String> cookies?() cookie以map格式返回,很顯然同名只返回一個
- Map<String,List<String>> multiHeaders?()
總結
工具使用班利,盡量使用最新饥漫,有什么問題盡量看官方文檔,這樣可減少因問題描述不到位肥败,導致搜不到滿意答案的問題發(fā)生趾浅。