透過shell抓取html資料
最近看一些網站的時候,發現有些資料很有意思,想把資料擷取出來,但是想把資料抽取出來很是困難。因為如下的小方框的數字都是上下兩行排列,想要把資料抽取到一行是很難實現的。
斯達 2:3 斯特羅姆 23:57 歐 亞 析 0-1
今天嘗試了一下,可以使用shell指令碼來達到目的。
比如我們使用wget來抽取網頁的資料,然後在這個基礎上進行資料的篩查。
[ora11g@rac1 a]$ wget
[1] 28401
[ora11g@rac1 a]$ --2014-08-24 04:27:59--
Resolving ... 58.83.226.133
Connecting to ... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1815957 (1.7M) [text/html]
Saving to: 鈥渉unhe?appType=livescore鈥
100%[=============================================================================================================================>] 1,815,957 530K/s in 3.3s
2014-08-24 04:28:03 (530 KB/s) - 鈥渉unhe?appType=livescore鈥saved [1815957/1815957]
[1]+ Done wget
在分析了網站的標籤之後,我寫了如下的shell指令碼,能夠抽取出對應的資料來。
grep "<a class=\"homewin btn\" op=\"w\"><span class=\"num\">" *|awk -F\<span '{print $2}'|awk -F\> '{print $2}'|awk -F\< '{print $1}' > win.lst
grep "<a class=\"draw btn\" op=\"d\"><span class=\"num\">" *|awk -F\<span '{print $2}'|awk -F\> '{print $2}'|awk -F\< '{print $1}' >tie.lst
grep "<a class=\"awaywin btn\" op=\"l\"><span class=\"num\">" *|awk -F\<span '{print $2}'|awk -F\> '{print $2}'|awk -F\< '{print $1}' > lose.lst
grep "<a class=\"homewin btn\" op=\"hdw\"><span class=\"num\">" *|awk -F\<span '{print $2}'|awk -F\> '{print $2}'|awk -F\< '{print $1}' > rwin.lst
grep "<a class=\"draw btn\" op=\"hdd\"><span class=\"num\">" *|awk -F\<span '{print $2}'|awk -F\> '{print $2}'|awk -F\< '{print $1}' >rtie.lst
grep "<a class=\"awaywin btn\" op=\"hdl\"><span class=\"num\">" *|awk -F\<span '{print $2}'|awk -F\> '{print $2}'|awk -F\< '{print $1}' >rlose.lst
cnt=`cat win.lst|wc -l`
for i in {1..$cnt}
do
tmp_win=`sed -n ''$i'p' win.lst`
tmp_tie=`sed -n ''$i'p' tie.lst`
tmp_lose=`sed -n ''$i'p' lose.lst`
tmp_rwin=`sed -n ''$i'p' rwin.lst`
tmp_rtie=`sed -n ''$i'p' rtie.lst`
tmp_rlose=`sed -n ''$i'p' rlose.lst`
echo $tmp_win $tmp_tie $tmp_lose $tmp_rwin $tmp_rtie $tmp_rlose
done
抽取出資料之後,展現類似下面的形式,達到了我們預期的目標。
2.98 3.05 2.17 1.53 3.70 4.90
1.81 3.45 3.55 3.45 3.60 1.78
2.60 3.55 2.19 1.51 4.10 4.50
1.38 3.85 7.25 2.33 3.25 2.55
2.30 2.82 3.00 5.40 3.85 1.46
1.34 4.25 7.00 2.15 3.45 2.68
1.29 4.75 7.20 1.93 3.75 2.92
2.25 3.70 2.45 4.60 4.15 1.49
4.05 3.70 1.65 1.96 3.60 2.95
3.65 3.50 1.77 1.81 3.70 3.26
2.95 3.33 2.06 1.58 3.83 4.25
1.35 4.50 6.20 2.12 3.50 2.70
1.68 3.85 3.72 3.02 3.65 1.91
4.95 3.80 1.52 2.18 3.35 2.70
1.54 3.45 5.40 2.80 3.30 2.13
2.39 3.00 2.70 5.65 3.95 1.43
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30633755/viewspace-2127771/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux透過Shell命令向埠傳送資料Linux
- 過濾搜尋引擎的抓取資料
- 透過等待看資料庫資料庫
- .net下功能強大的HTML解析庫HtmlAgilityPack,資料抓取必備HTML
- MySQL 透過 binlog 恢復資料MySql
- Shell指令碼 | 抓取log檔案指令碼
- 透過API介面實現資料探勘?API
- 【Mysql】如何透過binlog恢復資料MySql
- 透過Python SDK 獲取tushare資料Python
- 如何透過SQLyog分析MySQL資料庫MySql資料庫
- 透過spark將資料儲存到elasticsearchSparkElasticsearch
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- 通過shell指令碼批量操作mysql資料庫指令碼MySql資料庫
- python簡書資料抓取Python
- 透過 ETL 匯出 Hive 中的資料Hive
- hadoop 透過cachefile來避免資料傾斜Hadoop
- bitcoin: 透過 rpc 請求節點資料RPC
- 如何透過一條資料庫語句做資料分析資料庫
- 字元如何透過函式成為html實體字元函式HTML
- 透過shell指令碼監控日誌切換頻率指令碼
- 【磐維資料庫】透過python訪問磐維資料庫資料庫Python
- 談談如何透過主資料MDM 開啟資料治理之旅
- 資料安全:透過資料雲備份來抵禦勒索病毒
- 資料包抓取工具:Debookee for macMac
- Debookee for mac(資料包抓取工具)Mac
- 爬蟲原理與資料抓取爬蟲
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 透過結構化資料構建頁面
- XReport透過資料控制控制元件是否列印控制元件
- 如何透過API獲取實時商品資料API
- 如何透過.dbf檔案還原資料庫資料庫
- 如何使用代理IP進行資料抓取,PHP爬蟲抓取亞馬遜商品資料PHP爬蟲亞馬遜
- 如何解決GraphQL抓取不足或過度抓取
- 【YashanDB資料庫】PHP無法透過ODBC連線到資料庫資料庫PHP
- Vue透過引入cdn方式請求介面,渲染資料,axios渲染資料VueiOS
- unity3d透過串列埠接收Arduino資料Unity3D串列埠UI
- 透過 C# 將資料寫入到Excel表格C#Excel
- Label Studio資料標註--透過原始碼安裝原始碼
- 透過 Canal 將 MySQL 資料實時同步到 EasysearchMySql