如何用java获取网页源代码
生活随笔
收集整理的這篇文章主要介紹了
如何用java获取网页源代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如何用java爬取網頁源代碼
分為3個步驟:
1、分析
以b站為例 抓取b站的源代碼是這樣的
那么我可以用URL對象獲取HttpURLConnection對象
HttpURLConnection對象:它繼承自URLConnection,可用于向指定網站發送GET請求、POST請求。
調用URL中的 openConnection()再通過強轉獲得連接對象HttpURLConnection
HttpURLConnection 向網頁發送請求然后我們讀取網頁的源代碼
在我們發送請求的時候可能有些網址會報一個錯誤:Server returned HTTP response code: 403 for URL
這個錯誤的意思大概就是服務器的安全設置不接受Java程序作為客戶端訪問
這個時候我們需要進行安全設置:
//這個方法是HttpURLConnection中的方法 參數內容具體什么意思我也不知道,反正就是設置安全性 setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");既然說到讀取 那么就需要InputStream輸入流 在HttpURLConnection有個 getInputStream()方法 可以獲取我們的輸入流對象
獲取到了輸入流就等于是已經拿到了源碼
下面展示代碼 我會把捕獲到的源碼寫入到txt文件中
2、代碼展示
main方法
public static void main(String[] args) throws Exception{getURLData("https://www.bilibili.com/","utf-8"); }getURLData是我自己定義的方法 我是在方法中實現獲取源碼
getURLData 方法
static void getURLData(String Url, String coding) throws Exception {//創建URL對象 參數設置需要爬取的網址 也就是我們方法傳過來的參數URL url = new URL(Url);//得到一個HttpURLConnection 對象HttpURLConnection huc = (HttpURLConnection) url.openConnection();//防止出現Server returned HTTP response code: 403 for URL 的錯誤//也就是服務器的安全設置不接受Java程序作為客戶端訪問 所以我們進行安全設置huc.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//通過HttpURLConnection獲得輸入流對象InputStream is = huc.getInputStream();//使用緩沖字符輸入流獲取源碼 設置編碼BufferedReader r = new BufferedReader(new InputStreamReader(is,coding));String line;//寫入文件中BufferedWriter bw = new BufferedWriter(new FileWriter("E:\\1、idea項目\\算法和數據結構\\Demo\\src\\test\\_爬網址源碼\\1.txt"));//readLine()一次讀一行 while ((line = r.readLine()) != null){bw.write(line);//讀完一行就換行bw.newLine();//清空緩沖區bw.flush();}//關閉資源bw.close();r.close();is.close(); }3、結果展示
這樣我們就獲得了b站的源代碼,如果想要只爬取自己想要的數據
那么對數據(字符串)進行一個過濾就行了
學會了的點個贊吧~
總結
以上是生活随笔為你收集整理的如何用java获取网页源代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转载]三、二、一 …… Geronim
- 下一篇: DX_五角星计算