最近聽得較多的跳槽、面試之類的,相信不少園友也開始蠢蠢欲動了,有的甚至早已經開始了。最近我也在琢磨着換工做的事。說得俗套點,人在外面不就爲了那麼點工資麼。如今找工做大部分都是經過在網上投簡歷,而後等電話 通知面試的。然,如今的招聘網站也是比較多。一個一個的在各大網站切換的流量招聘信息 實屬麻煩。以前看到過一篇博文。《找工做神器,提取各大網站有效的招聘信息(前程無憂、智聯招聘、獵聘網)》感受這想法挺好的。把各大網站信息集中起來瀏覽,第一省了來回切換,第二還不容易重複投簡歷。本想拿來用用的,無奈沒有提供源碼下載,且是客戶端版本。因而就只能本身動手,豐衣足食了~。(網站就是強大,能夠你們一塊兒分享●0●^_^)javascript
合併查詢原本就是爲了簡單方便,因此也就沒有弄很複雜了,一個頁面搞定。若是同窗們有什麼好的想法,能夠建議建議。php
就一個簡單的關鍵字輸入框、工做地點的選擇和信息來源網站。html
其實看上去很簡單,實現起來也很簡單。~~代碼很少,難度也很小。不少時候須要的技術不是不少,想法更重要。java
不想往下看的能夠直接用用 演示地址 ,同窗們求工做給推薦推薦,上海 浦東 .net。 私密我,或Q我。jquery
進入招聘網站的時候url大串大串的,咱們須要用的的就三個。搜索關鍵字、地址和頁碼。面試
http://sou.zhaopin.com/jobs/searchresult.ashx?jl=地址&kw=關鍵字&p=頁碼ajax
jl=地址數據庫
kw=關鍵字瀏覽器
p=頁碼異步
而後地址的話 直接中文地址就ok了
http://www.liepin.com/zhaopin/?key=關鍵字&dqs=地址&curPage=頁碼
key=關鍵字
dqs=地址
curPage=頁碼
地址有一個對應的編號
("北京", "010");
("上海", "020");
("廣州", "050020");...等等 也是在獵聘網選擇地址的地方右鍵 審查元素能夠看到,以下:
http://search.51job.com/jobsearch/search_result.php?jobarea=地址&keyword=關鍵字&curr_page=頁碼
jobarea=地址 [和獵聘同樣的查找方法]
keyword=關鍵字
curr_page=頁碼
在以前我發過的 博客轉發小工具 有提過HtmlAgilityPack。這裏再簡單的說說用法。
case ZhaopinType.獵聘網: var htmlWeb = new HtmlWeb(); htmlWeb.OverrideEncoding = Encoding.GetEncoding("UTF-8"); HtmlAgilityPack.HtmlDocument response = htmlWeb.Load(url); #region MyRegion var ulS = response.DocumentNode.SelectNodes("//*[@id='sojob']/div[2]/div/div/ul/li"); foreach (var item in ulS) { var xpath = item.XPath; string titleName, infourl, company, city, date, salary, salary_em, source; titleName = item.SelectSingleNode(xpath + "/a").Attributes["title"].Value; infourl = item.SelectSingleNode(xpath + "/a").Attributes["href"].Value; company = item.SelectSingleNode(xpath + "/a/dl/dt[@class='company']").InnerText; city = item.SelectSingleNode(xpath + "/a/dl/dt[@class='city']/span").InnerText; date = item.SelectSingleNode(xpath + "/a/dl/dt[@class='date']/span").InnerText; salary = item.SelectSingleNode(xpath + "/a/dl/dt[@class='salary']/span").InnerText; salary_em = item.SelectSingleNode(xpath + "/a/dl/dt[@class='salary']/em").InnerText; source = "獵聘網"; zpInfoList.Add( new ZhaopinInfo() { city = city, company = company, date = date, info_url = infourl, salary = salary, salary_em = salary_em, titleName = titleName, source = source }); } #endregion break;
htmlWeb.OverrideEncoding = Encoding.GetEncoding("UTF-8");
設置編碼爲UTF-8,具體看對應頁面採用的編碼。
var ulS = response.DocumentNode.SelectNodes("//*[@id='sojob']/div[2]/div/div/ul/li");
SelectNodes方法裏面的這串字符串怎麼來?
右鍵審查元素 Copy XPath 就ok了。不過若是js有動態修改document樹的話 那麼這個路徑就不許了,須要本身微調下。
如:取a標籤的title值。
titleName = item.SelectSingleNode(xpath + "/a").Attributes["title"].Value;
company = item.SelectSingleNode(xpath + "/a/dl/dt[@class='company']").InnerText;
XPath 中 標籤名後面加上中括號 和@ 如: "/a/dl/dt[@class='company']"
js獲取滾動條距離瀏覽器頂部,底部的高度,兼容ie和firefox
//取窗口可視範圍的高度[瀏覽器可見區域高度] getClientHeight: function () { var clientHeight = 0; if (document.body.clientHeight && document.documentElement.clientHeight) { var clientHeight = (document.body.clientHeight < document.documentElement.clientHeight) ? document.body.clientHeight : document.documentElement.clientHeight; } else { var clientHeight = (document.body.clientHeight > document.documentElement.clientHeight) ? document.body.clientHeight : document.documentElement.clientHeight; } return clientHeight; }
getScrollTop: function () { var scrollTop = 0; if (document.documentElement && document.documentElement.scrollTop) { scrollTop = document.documentElement.scrollTop; } else if (document.body) { scrollTop = document.body.scrollTop; } return scrollTop; }
getScrollHeight: function () { return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); }
getScrollbheight: function () { return this.getScrollHeight() - this.getScrollTop() - this.getClientHeight(); }
取滾動條距離底部的高度,當滾動條到最底部的時候,經過ajax異步請求後臺,加載下一頁數據,這樣就能夠免了翻頁的麻煩了。
ps:用jquery 更加簡潔(感謝@Samguist)
if ($(window).scrollTop() == $(document).height() - $(window).height()) { // ajax異步加載數據 }
基本上就是這樣簡單,沒什麼難度。記得有什麼好工做通知一聲哦~^_^ ^_^ ***** 點擊本人求職信息*****
環境:vs2013 數據庫:無 插件:HtmlAgilityPack 演示地址 源碼下載 (源碼都下了 順手點個讚唄~)