日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java实例——基于jsoup的简单爬虫实现(从智联获取工作信息)

發(fā)布時(shí)間:2024/4/15 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java实例——基于jsoup的简单爬虫实现(从智联获取工作信息) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  這幾天在學(xué)習(xí)Java解析xml,突然想到Dom能不能解析html,結(jié)果試了半天行不通,然后就去查了一些資料,發(fā)現(xiàn)很多人都在用Jsoup解析html文件,然后研究了一下,寫了一個(gè)簡(jiǎn)單的實(shí)例,感覺(jué)還有很多地方需要潤(rùn)色,在這里分享一下我的實(shí)例,歡迎交流指教!

  后續(xù)想通過(guò)Java把數(shù)據(jù)導(dǎo)入到Excel或者生成一個(gè)報(bào)表!

1 package gethtml; 2 3 4 5 import java.io.IOException; 6 import org.jsoup.Jsoup; 7 import org.jsoup.nodes.Document; 8 import org.jsoup.nodes.Element; 9 import org.jsoup.select.Elements; 10 11 /**從智聯(lián)招聘獲取招聘信息 12 * @author syskey 13 * @url 智聯(lián)招聘網(wǎng)站鏈接(建議不要更改) 14 * @city 搜索工作的城市 15 * @keywrods 搜索工作的相關(guān)關(guān)鍵字 16 */ 17 18 public class JsoupHtml { 19 20 private String url="http://sou.zhaopin.com/jobs/searchresult.ashx?jl="; //智聯(lián)招聘網(wǎng)站 21 private String city="西安"; //搜索工作的城市 22 private String keywords="java"; //搜索工作的關(guān)鍵字 23 public JsoupHtml(String city,String keywords){ 24 this.city=city; 25 this.keywords =keywords; 26 27 } 28 29 public void getZhiLianWork(){ 30 try { 31 for (int i=0;i<10;i++) { 32 System.out.println("*********開(kāi)始遍歷第"+(i+1)+"頁(yè)的求職信息*********"); 33 Document doc = Jsoup.connect(url+city+"&kw="+keywords+"&p="+(i+1)+"&isadv=0").get(); 34 Element content = doc.getElementById("newlist_list_content_table"); 35 Elements zwmcEls = content.getElementsByClass("zwmc"); 36 Elements gsmcEls = content.getElementsByClass("gsmc"); 37 Elements zwyxEls = content.getElementsByClass("zwyx"); 38 Elements gzddEls = content.getElementsByClass("gzdd"); 39 Elements gxsjEls = content.getElementsByClass("gxsj"); 40 for(int j = 0;j<zwmcEls .size();j++){ 41 42 System.out.println( 43 zwmcEls.get(j).tagName("a").text()+"*****"+gsmcEls.get(j).tagName("a").text()+ 44 "*****"+zwyxEls.get(j).tagName("a").text()+"*****"+gzddEls.get(j).tagName("a").text()+ 45 "*****"+gxsjEls.get(j).tagName("a").text()); 46 System.out.println(); 47 } 48 System.out.println("*********結(jié)束遍歷第"+(i+1)+"頁(yè)的求職信息*********"); 49 50 } 51 52 } catch (IOException e) { 53 // TODO Auto-generated catch block 54 e.printStackTrace(); 55 } 56 } 57 public static void main(String[] args) { 58 59 JsoupHtml jHtml = new JsoupHtml("上海", "java"); 60 jHtml.getZhiLianWork(); 61 62 } 63 64 }

?  更新源代碼,支持生成html表格:

package jsouphtml;import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter;import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements;public class JsoupHtml {public static void main(String[] args) { try {String url ="http://sou.zhaopin.com/jobs/searchresult.ashx?";String city ="西安";String keywords = "java";BufferedWriter bWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("output.html"),"utf-8"));bWriter.write("");File input = new File("input.html");Document doc2 = Jsoup.parse(input, "UTF-8", "");Element table = doc2.getElementById("workinfo");table.text("");Element theader = table.appendElement("tr");theader.appendElement("th").text("序號(hào)");theader.appendElement("th").text("職位名稱");theader.appendElement("th").text("公司名稱");theader.appendElement("th").text("職位月薪");theader.appendElement("th").text("工作地點(diǎn)");theader.appendElement("th").text("發(fā)布日期"); for(int page=0;page<10;page++){ Document doc = Jsoup.connect(url+city+"&kw="+keywords+"&p="+page).get(); Element content = doc.getElementById("newlist_list_content_table"); Elements zwmcEls = content.getElementsByClass("zwmc");Elements gsmcEls = content.getElementsByClass("gsmc"); Elements zwyxEls = content.getElementsByClass("zwyx"); Elements gzddEls = content.getElementsByClass("gzdd"); Elements gxsjEls = content.getElementsByClass("gxsj");for(int i = 1;i<zwmcEls .size();i++){ Element tr =table.appendElement("tr");tr.appendElement("td").text((page+1)+"-"+i);tr.appendElement("td").text(zwmcEls.get(i).tagName("a").text());tr.appendElement("td").text(gsmcEls.get(i).tagName("a").text());tr.appendElement("td").text(zwyxEls.get(i).tagName("a").text());tr.appendElement("td").text(gzddEls.get(i).tagName("a").text());tr.appendElement("td").text(gxsjEls.get(i).tagName("a").text());}}System.out.println(doc2.html());bWriter.write(doc2.html());bWriter.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

  output.html模板:

<!doctype html> <html lang="en"><head><meta charset="UTF-8"><meta name="Generator" content="EditPlus?"><meta name="Author" content=""><meta name="Keywords" content=""><meta name="Description" content=""><title>智聯(lián)工作信息</title><style>body{margin:0;padding:0;}.header{height:100px;width:100%;background:#39c;color:#fff;text-align:center;line-height:100px;font-size:40px;font-family:"微軟雅黑";}.body{width:100%;background:#fff;}.body table{width:90%;margin:0 auto;color:#2e2e2e;border:1px solid #cad9ea; border-collapse: collapse; }.body table th,td{min-width:50px;max-width:300px;}.feeter{height:30px;width:100%;background:#39c;color:#fff;text-align:center;line-height:30px;font-size:14px;font-family:"微軟雅黑";}</style></head><body><div class="header">智聯(lián)工作信息</div><div class="body"><table class="work" border="1"><tbody id="workinfo"></tbody></table></div><div class="feeter">版權(quán)所有 翻版必究@2017 sysker</div></body> </html>

  

轉(zhuǎn)載于:https://www.cnblogs.com/caoleiCoding/p/6476203.html

總結(jié)

以上是生活随笔為你收集整理的Java实例——基于jsoup的简单爬虫实现(从智联获取工作信息)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。