關於網頁抓取資訊 Jsoup 和 HttpUnit 的使用
之前看了看 洪祥的csdn app 製作,裡面有從網頁抓取資料的. 之前對這塊操作沒有接觸過,所以網上差了一些資料,現在整理下相關的內容.
首先是關於Jsoup , Jsoup 是網頁抓取的首選.但是請注意: 如果Jsoup去抓取的頁面的資料,全都是頁面載入完成後,ajax獲取形成的,是抓取不到的。
具體請看鴻翔的部落格. 地址是 網頁資訊抓取進階 支援Js生成資料 Jsoup的不足之處
首先看看Jsoup 的程式碼:
這個是網頁原始碼中擷取的一段,我們需要去解析這段程式碼:
<div class="unit">
<h1><a href="http://www.csdn.net/article/2015-05-12/2824667" target="_blank" >萬達圓夢“+網際網路”的支點:支付</a></h1>
<h4>發表於<span class="ago">2015-05-12 15:58</span>|<span class="view_time">1676次閱讀</span>|<span class="num_recom">4條評論</span></h4>
<dl>
<dt>
<a href="http://www.csdn.net/article/2015-05-12/2824667" target="_blank"><img src="http://img.ptcms.csdn.net/article/201505/12/5551b25feb70a_thumb.jpg" alt="" /></a>
</dt>
<dd>萬達的佈局邏輯是,線下依然核心支柱,而線上則不斷完善加快線下產業的發展。而收購的支付——快錢,正是撬動萬達快速轉型的這個必不可少的支點。有了它,萬達可以成為一線電商平臺、做網際網路金融和推進線下變革。</dd>
</dl>
<div class="tag">
<a href="http://www.csdn.net/tag/%E4 %BA%92%E8%81%94%E7%BD%91/news" target="_blank">網際網路</a>
<a href="http://www.csdn.net/tag/%E7%A7%BB%E5%8A%A8%E6%94%AF%E4%BB%98/news" target="_blank">移動支付</a>
<a href="http://www.csdn.net/tag/%E7%94%B5%E5%AD%90%E5%95%86%E5%8A%A1/news" target="_blank">電子商務</a>
<a href="http://www.csdn.net/tag/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/news" target="_blank">阿里巴巴</a>
<a href="http://www.csdn.net/tag/%E6%94%AF%E4%BB%98%E5%AE%9D/news" target="_blank">支付寶</a>
<a href="http://www.csdn.net/tag/%E7%8E%8B%E5%81%A5/news" target="_blank">王健</a>
<a href="http://www.csdn.net/tag/%E8%85%BE%E8%AE%AF/news" target="_blank">騰訊</a>
<a href="http://www.csdn.net/tag/%E4%B8%87%E8%BE%BE/news" target="_blank">萬達</a>
</div>
</div>
這是使用 Jsoup 解析:
public List<NewItem> getNewsItems(int newsType,int currentPage) throws CommonException{
// 自己寫的得到url 地址的工具類
String urlStr = URLUtil.generateUrl(newsType, currentPage);
//使用 http 傳送get請求 .
String htmlStr = DataUtil.doGet(urlStr);
List<NewItem> newItems = new ArrayList<NewItem>();
NewItem newItem = null;
Document document = Jsoup.parse(htmlStr);
Elements units = document.getElementsByClass("unit");
for (int i = 0; i < units.size(); i++) {
newItem = new NewItem();
newItem.setNewsType(newsType);
Element unit_ele = units.get(i);
Element h1_ele = unit_ele.getElementsByTag("h1").get(0);
Element h1_a_ele = h1_ele.child(0);
String title = h1_a_ele.text();
String href = h1_a_ele.attr("href");
newItem.setLink(href);
newItem.setTitle(title);
Element h4_ele = unit_ele.child(1);
Element span_ele = h4_ele.getElementsByTag("span").get(0);
String date = span_ele.text();
newItem.setDate(h4_ele.text() + date);
Element d1_ele = unit_ele.getElementsByTag("dl").get(0);
Element d1_dt_ele = d1_ele.child(0);
// 可能沒有圖片
try {
Element img_ele = d1_dt_ele.child(0).child(0);
String imgLink = img_ele.attr("src");
newItem.setImgLink(imgLink);
} catch (Exception e) {
}
Element dl_dd_ele = d1_ele.child(1);
String content = dl_dd_ele.text();
newItem.setContent(content);
newItems.add(newItem);
}
return newItems;
}
上面的程式碼不難, 就是解析資料.相信仔細看都可以看懂.
ok 我的第一篇部落格 哈哈 為自己寫的
相關推薦
關於網頁抓取資訊 Jsoup 和 HttpUnit 的使用
之前看了看 洪祥的csdn app 製作,裡面有從網頁抓取資料的. 之前對這塊操作沒有接觸過,所以網上差了一些資料,現在整理下相關的內容. 首先是關於Jsoup , Jsoup 是網頁抓取的首選.但是請注意: 如果Jsoup去抓取的頁面的資料,全都是頁面載
自從有了Phantomjs和Casperjs,後臺網頁抓取和互動變得異常的簡單
Casperjs是基於Phantomjs的,而Phantom JS是一個伺服器端的 JavaScript API 的 WebKit。 這跟我一直想找個自帶瀏覽器核心的後臺東西的想法“暗合”。所以,在我發現這東西的時候就已經開始不由自主的興奮起來了,研究一番之後
如何使用Fiddler抓取APP介面和微信網頁原始碼
Fiddler,一個抓包神器,不僅可以通過手機訪問APP抓取介面甚至一些資料,還可以抓取微信授權網頁的
用Python進行網頁抓取
google 神奇 顯示 rss 遍歷 ecb data- 可用 appdata 引言 從網頁中提取信息的需求日益劇增,其重要性也越來越明顯。每隔幾周,我自己就想要到網頁上提取一些信息。比如上周我們考慮建立一個有關各種數據科學在線課程的歡迎程度和意見的索引。我們不僅需要
程序抓取的內容和瀏覽器打開的內容不一樣
isnull request col 程序 http str ade referer empty 請求時帶上referer。 var message = new HttpRequestMessage(HttpMethod.Get, url); if (!string.I
Python3網絡爬蟲(一):利用urllib進行簡單的網頁抓取
robot 資源 urlopen 解碼 支付寶 編碼方式 只需要 服務器 net 一、預備知識 1.Python3.x基礎知識學習: 可以在通過如下方式進行學習: (1)廖雪峰Python3教程(文檔): URL:http://www.liaoxue
Python開發簡單爬蟲之靜態網頁抓取篇:爬取“豆瓣電影 Top 250”電影數據
模塊 歲月 python開發 IE 女人 bubuko status 公司 使用 目標:爬取豆瓣電影TOP250的所有電影名稱,網址為:https://movie.douban.com/top250 1)確定目標網站的請求頭: 打開目標網站,在網頁空白處點擊鼠標右鍵,
Python指令碼抓取資訊洩露,獲取心怡妹子手機號並新增微信!
答應了蛋蛋的文章一直沒空寫,主要也沒好的素材,平時有些有趣的挖洞經歷又總是懶得各種記錄截圖啥的 學習Python中有不明白推薦加入交流群 號:516107834 群裡有志同道合的小夥伴,互幫互助, 群裡有不錯的學習教程! 今天本來想寫篇技術專題,後
python:多執行緒抓取西刺和快站 高匿代理IP
一開始是打算去抓取一些資料,但是總是訪問次數多了之後被封IP,所以做了一個專門做了個工具用來抓取在西刺和快站的高匿IP。 執行環境的話是在python3.5下執行的,需要requests庫 在製作的過程中也參考的以下網上其他人的做法,但是發現很大一部分都不是多執行緒去抓取有點浪費時間了,又或者
JAVA實現網頁抓取(htmlunit)
準確條件 加入依賴jar包 <dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId&
爬蟲(抓取靜態頁面和動態頁面的區別,get請求和post請求的區別)
靜態頁面: 非結構化資料:HTML 處理方式:正則表示式,xpath, beautifulsoup4 靜態頁面中的資料都包含在網頁的HTML中(一般都是get請求) 所以可以直接在網頁的HTML中提取資料 關鍵詞一般都以查詢字串的方式拼接在URL中 分析URL的變
智聯招聘抓取---scrapy框架和requests庫兩種方式實現
#首先分析目標站點,分析得出結果是在json接口裡,然後抓取企業資訊需要再次請求頁面進行抓取 #1.直接requests請求進行抓取儲存 ##需要注意點: 可能不同企業單頁排版不一樣,需要判斷採取不同形式 儲存為csv檔案注意格式,保證資料表格不換行需要新增
java爬蟲入門——從一個網頁抓取原始碼
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamRea
python第十一章 從web抓取資訊
利用webbrowser 模組開啟URL web抓取:即利用程式下載並處理來自web的內容。 webbrowser: Python自帶,開啟瀏覽器獲取指定頁面 import webbrowser # 開啟百度瀏覽器 webbrowser.open('http://www.baidu.com
一個簡單的網頁抓取工具
前兩天遇到一個妹子,她說不會從拉網頁,我想用node做個網頁抓取工具是何嘗的簡單,於是裝x之路開始了。 其實想法很簡單,由網址得到html,由html解析css,js,image等,分別下載就行了, 一個難點就在路徑的解析上,一般的的頁面是域名的,例如www.baidu.com。而有的頁面是http://
java抓取資訊提取
protected Logger logger = LogManager.getLogger(this.getClass()); private static final String articleListBox = "lstBox",
使用Python進行網頁抓取的介紹!
介紹 網頁抓取是一種重要的技術,經常在許多不同的環境中使用,尤其是資料科學和資料探勘。 Python在很大程度上被認為是網路抓取的首選語言,其原因在於Python的內嵌電池特性。 使用Python,您可以在大約15分鐘內使用不到100行程式碼建立一個簡單的抓取指令碼。 因此,無論何種用途,網頁抓
python 從web抓取資訊
requests模組想詳細瞭解requests的,可以去看看requests官方文件requests模組可以很容易的從web下載檔案 安裝pip install requests然後就可以呼叫了>>>import requests #requests.get
Python網頁抓取之Lxml
Lxml是基於libxml2這一XML解析庫的Python封裝。該模組使用C語言編寫,解析速度比BeautifulSoup更快。 Lxml可以正確解析屬性兩側缺失的引號,並閉合標籤。如案例一 案例二
Python網頁抓取urllib,urllib2,httplib[3]
使用urllib2,太強大了 試了下用代理登陸拉取cookie,跳轉抓圖片...... 直接上demo程式碼了 包括:直接拉取,使用Reuqest(post/get),使用代理,cookie,跳轉處理 #!/usr/bin/python # -*- coding:u