1. 程式人生 > >簡易資料分析 11 | Web Scraper 抓取表格資料

簡易資料分析 11 | Web Scraper 抓取表格資料

這是簡易資料分析系列的第 11 篇文章。

今天我們講講如何抓取網頁表格裡的資料。首先我們分析一下,網頁裡的經典表格是怎麼構成的。

  • First Name 所在的行比較特殊,是一個表格的表頭,表示資訊分類
  • 2-5 行是表格的主體,展示分類內容

經典表格就這些知識點,沒了。下面我們寫個簡單的表格 Web Scraper 爬蟲。

1.製作 Sitemap

我們今天的練手網站是

http://www.huochepiao.com/search/chaxun/result.asp?txtChuFa=%C9%CF%BA%A3&txtDaoDa=%B1%B1%BE%A9

爬蟲的內容是抓取上海到北京的所有列車時刻表。

我們先建立一個包含整個表格的 container,Type 型別選為 Table,表示我們要抓取表格。

具體的引數如上圖所示,因為比較簡單,就不多說了。

在這個面板下向下翻,會發現多了一個不一樣的面板。觀察一下你就會發現,這些資料其實就是表格資料型別的分類,在這個案例裡,他把車次、出發站、開車時間等分類都列了出來。

Table columns 這個分類裡,每一行的內容旁邊的選擇按鈕預設都是打勾的,也就是說預設都會抓取這些列的內容。如果你不想抓取某類內容,去掉對應的勾選就可以了。

在你點選 Save selector 的按鈕時,會發現 Result key 的一些選項報錯,說什麼 invalid format

格式無效:

解決這個報錯很簡單,一般來說是 Result key 名字的長度不夠,你給加個空格加個標點符號就行。如果還報錯,就試試換成英文名字:

解決報錯儲存成功後,我們就可以按照 Web Scraper 的爬取套路抓取資料了。

2.為什麼我不建議你用 Web Scraper 的 Table Selector?

如果你按照剛剛的教程做下里,就會感覺很順利,但是檢視資料時就會傻眼了。

剛開始抓取時,我們先用 Data preview 預覽一下資料,會發現資料很完美:

抓取資料後,在瀏覽器的預覽面板預覽,會發現車次這一列資料為 null,意味著沒有抓取到相關內容:

我們下載抓取的 CSV 檔案後,在預覽器裡開啟,會發現車次

的資料出現了,但出發站的資料又為 null 了!

這不是坑爹呢!

關於這個問題我調查了半天,應該是 Web Scraper 對中文關鍵字索引的支援不太友好,所以會丟擲一些詭異的 bug,因此我並不建議大家用它的 Table 功能。

如果真的想抓取表格資料,我們可以用之前的方案,先建立一個型別為 Element 的 container,然後在 container 裡再手動建立子選擇器,這樣就可以規避這個問題。

上面只是一個原因,還有一個原因是,在現代網站,很少有人用 HTML 原始表格了。

HTML 提供了表格的基礎標籤,比如說 <table><thead><tbody> 等標籤,這些標籤上提供了預設的樣式。好處是在網際網路剛剛發展起來時,可以提供開箱即用的表格;缺點是樣式太單一,不太好定製,後來很多網站用其它標籤模擬表格,就像 PPT裡用各種大小方塊組合出一個表格一樣,方便定製:

出於這個原因,當你在用 Table Selector 匹配一個表格時,可能會死活匹配不上,因為從 Web Scraper 的角度考慮,你看到的那個表格就是個高仿,根本不是原裝正品,自然是不認的。

3.總結

我們並不建議直接使用 Web Scraper 的 Table Selector,因為對中文支援不太友好,也不太好匹配現代網頁。如果有抓取表格的需求,可以用之前的建立父子選擇器的方法來做。

4.推薦閱讀

簡易資料分析 10 | Web Scraper 翻頁——抓取「滾動載入」型別網頁

相關推薦

簡易資料分析 11 | Web Scraper 表格資料

這是簡易資料分析系列的第 11 篇文章。 今天我們講講如何抓取網頁表格裡的資料。首先我們分析一下,網頁裡的經典表格是怎麼構成的。 First Name 所在的行比較特殊,是一個表格的表頭,表示資訊分類 2-5 行是表格的主體,展示分類內容 經典表格就這些知識點,沒了。下面我們寫個簡單的表格 Web

簡易資料分析 07 | Web Scraper 多條內容

這是簡易資料分析系列的第 7 篇文章。 在第 4 篇文章裡,我講解了如何抓取單個網頁裡的單類資訊; 在第 5 篇文章裡,我講解了如何抓取多個網頁裡的單類資訊; 今天我們要講的是,如何抓取多個網頁裡的多類資訊。 這次的抓取是在簡易資料分析 05的基礎上進行的,所以我們一開始就解決了抓取多個網頁的問題,下面全

簡易資料分析 04 | Web Scraper 初嘗--豆瓣高分電影

這是簡易資料分析系列的第 4 篇文章。 今天我們開始資料抓取的第一課,完成我們的第一個爬蟲。因為是剛剛開始,操作我會講的非常詳細,可能會有些囉嗦,希望各位不要嫌棄啊:) 有人之前可能學過一些爬蟲知識,總覺得這是個複雜的東西,什麼 HTTP、HTML、IP 池,在這裡我們都不考慮這些東西。一是小的資料量根本

簡易資料分析 09 | Web Scraper 自動控制數量 & Web Scraper 父子選擇器

這是簡易資料分析系列的第 9 篇文章。 今天我們說說 Web Scraper 的一些小功能:自動控制 Web Scraper 抓取數量和 Web Scraper 的父子選擇器。 如何只抓取前 100 條資料? 如果跟著上篇教程一步一步做下來,你會發現這個爬蟲會一直運作,根本停不下來。網頁有 1000 條資

簡易資料分析 10 | Web Scraper 翻頁——「滾動載入」型別網頁

這是簡易資料分析系列的第 10 篇文章。 友情提示:這一篇文章的內容較多,資訊量比較大,希望大家學習的時候多看幾遍。 我們在刷朋友圈刷微博的時候,總會強調一個『刷』字,因為看動態的時候,當把內容拉到螢幕末尾的時候,APP 就會自動載入下一頁的資料,從體驗上來看,資料會源源不斷的加載出來,永遠沒有盡頭。

簡易資料分析 12 | Web Scraper 翻頁——分頁器翻頁的網頁

這是簡易資料分析系列的第 12 篇文章。 前面幾篇文章我們介紹了 Web Scraper 應對各種翻頁的解決方法,比如說修改網頁連結載入資料、點選“更多按鈕“載入資料和下拉自動載入資料。今天我們說說一種更常見的翻頁型別——分頁器。 本來想解釋一下啥叫分頁器,翻了一堆定義覺得很繁瑣,大家也不是第一年上網了,

簡易資料分析 13 | Web Scraper 高階用法——二級頁面

這是簡易資料分析系列的第 13 篇文章。 不知不覺,web scraper 系列教程我已經寫了 10 篇了,這 10 篇內容,基本上覆蓋了 Web Scraper 大部分功能。今天的內容算這個系列的最後一篇文章了,下一章節我會開一個新坑,說說如何利用 Excel 對收集到的資料做一些格式化的處理和分析。

web scraper 資料並做簡單資料分析

其實 web scraper 說到底就是那點兒東西,所有的網站都是大同小異,但是都還不同。這也是好多同學總是遇到問題的原因。因為沒有統一的模板可用,需要理解了 web scraper 的原理並且對目標網站加以分析才可以。 今天再介紹一篇關於 web scraper 抓取資料的文章,除了 web scraper

簡易資料分析 02 | Web Scraper 的下載與安裝

這是簡易資料分析系列的第 2 篇文章。 上篇說了資料分析在生活中的重要性,從這篇開始,我們就要進入分析的實戰內容了。資料分析資料分析,沒有資料怎麼分析?所以我們首先要學會採集資料。 我調研了很多采集資料的軟體,綜合評定下來發現最好用的還是 Web Scraper,這是一款 Chrome 瀏覽器外掛。

簡易資料分析 08 | Web Scraper 翻頁——點選「更多按鈕」翻頁

這是簡易資料分析系列的第 8 篇文章。 我們在Web Scraper 翻頁——控制連結批量抓取資料一文中,介紹了控制網頁連結批量抓取資料的辦法。 但是你在預覽一些網站時,會發現隨著網頁的下拉,你需要點選類似於「載入更多」的按鈕去獲取資料,而網頁連結一直沒有變化。 所以控制連結批量抓去資料的方案失效了,所以

使用Charles Https 資料及原理分析

環境 PC :Windows 10 Mobile:華為榮耀V8 Android7.0 Charles: Charles 4.2.5 在電腦上安裝Charles根證書 Tips : 如果您不需要抓取PC上的Https請求,

關於“淘寶爆款”的資料資料分析

1、資料爬取 爬取物件:淘寶“連衣裙 夏”的搜尋結果。爬取物件的選擇分析我在文章中也有提及。 工具:Scrapy。 2、資料分析 工具:ipython & matplotlib。 3、分析內容 4、正文 一、案例選擇。 現在著手分析

匯率資料分析美元和歐元對RMB的變化曲線

資料: 例項: import requests payload = { 'projectBean.startDate' : '2017-06-18', 'projectBe

分析Ajax請求並今日頭條街拍美圖

mage param word esp 信息 ons import src on() 準備工作 requests、Beautiful Soup、MongoDB 抓取分析 在抓取之前首先分析抓取的邏輯,打開今日頭條的首頁https://www.toutiao.com/如

Web站點工具webhttrack

bubuko 能夠 image 啟動 很好 http 技術 AC 一個 近來發現Ubuntu下一個很好用的web站點抓取工具webhttrack,能夠將給定網址的站點抓取到本地的目錄中,並實現離線瀏覽,很實用。 1、安裝webhttrack ubuntu 16.04的官方源

夜神模擬器配置burpsuiteAPP資料報文

設定夜神模擬器的代理 進入wifi連線選項 之後長按熱點,出現修改網路的彈窗 點選修改網路,勾選高階選項,將代理設為手動,代理伺服器主機名填寫電腦的ip,埠號填寫8888 點選儲存 設定Burpsuite代理 在夜神模擬器當中使用瀏覽器瀏覽該代理地

Charles小常識及手機資料

一.Charles小常識 注意: (1)瀏覽網頁時花瓶儘量不要開啟,可能會出現網頁重置現象 (2)安裝Python包時,切記要將花瓶關閉,否則會報錯 1.花瓶的埠是8888 2. 可以改為0.0.0.0/0可以抓取所有IP下的所有埠   3.可以按照以下做

使用fiddlerapp資料

本文簡單展示如何用Python抓取APP資料,以超級課程表樹洞為例: 首先:需要下載抓包神器:fiddler 直接百度下載,然後打來fiddler設定幾個選項: 選中"Decrpt HTTPS traffic",    Fiddler就可以截獲HTTPS請

爬蟲的增量式資料更新

爬蟲的增量式抓取和資料更新 頁面爬的多了,量上去了之後,就會遇到其他的問題,其實不管做什麼技術量大了都會有問題。一般情況下,我認為解決"大量"問題的思路有兩個:一種是著力於優化系統的能力,讓原本只能一分鐘處理100條的系統提升到一分鐘1000條之類的,在我看來並行、分散式、叢

有搜尋條件根據url網頁資料(java爬網頁資料)

最近有一個任務抓取如下圖的網頁資料  要獲取前一天的資料進行翻頁抓取資料並存入資料庫   如果就只是抓取當前頁的資料  沒有條件和翻頁資料 這個就比較簡單了 但是要選取前一天的資料,還有分頁資料 一開始的思路就想錯了(開始想的是觸發查詢按鈕和