获取Bing主页的背景图片
一直對爬蟲比較感興趣,但是一直沒有深入學習,浮于表面,每次有使用需求,就寫一個,寫完就完,沒有總結過,也沒有繼續深入學習。
但是,作為一個奔三的程序員菜鳥,還是先不要自暴自棄,以后自爆的機會還很多~.~
這次做的是一個簡單的爬蟲,功能是獲取Bing主頁(http://cn.bing.com/)上的背景圖。
開始嘗試右鍵有沒有另存為,發現沒有,網上有的兄弟說在IE下打開可以右鍵保存,但是也沒有。所以就想著用點高科技~~
思路:
爬去特定資源,當然要先分析頁面了,我們要找的是背景圖,所以首先想到的是“background”,查看網頁源代碼,搜索關鍵詞,我們發現會有很多結果,而且有“background-image”這樣可疑的字樣,它后面還跟著url,這就更可疑了。我們嘗試訪問,看看具體是什么東西(這些url開頭沒有www,當然需要加上Bing的主頁網址啦)。訪問之后大家可以看到,這些都是圖片資源,其中就有我們想要的背景圖,那么接下來就是怎么獲取的問題了。
既然找到了資源地址,接下來只需要將資源地址取出來,然后下載。取出來的過程就是通過字符串的操作將完整的url拼出來,然后將該地址下的內容下載下來。
思路就是這樣,下面貼一些代碼
public class SpiderUtil {public static String getPicUrl(String content) throws IOException {String url = "";String[] ss = content.split("g_img=\\{url: \"");url = ss[1].substring(0, ss[1].indexOf("\""));return url;}public static String getFileName() {Date date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String format = sdf.format(date);format = format.replaceAll("-", "");String name = format + ".jpg";return name;} }getPicUrl(String content)方法就是在網頁中獲取背景圖的url,其中content指的就是網頁代碼,獲取方法很簡單,如下:
public Document getHtml(String url) throws IOException {Connection conn = Jsoup.connect(url);Document doc = conn.get();return doc;}我這里爬蟲用的主要就是jsoup,版本是1.10。document.html()返回的就是上文需要的content。
獲取到url之后就要下載了
public void downloadPic(String url, String path) throws IOException {Connection conn = Jsoup.connect(url);Response resp = conn.ignoreContentType(true).execute();FileUtil.write2File(resp, path);}方法中的url指的是圖片的url,path指的是圖片下載存放位置。
write2File方法代碼如下:
這樣整個流程就結束了。
小菜鳥上路啦,請各位指教~.~
總結
以上是生活随笔為你收集整理的获取Bing主页的背景图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 码农翻身——JDBC的诞生
- 下一篇: VMware Workstation安装