顯示具有 Ⅱ-取得資料 標籤的文章。 顯示所有文章
顯示具有 Ⅱ-取得資料 標籤的文章。 顯示所有文章

2014/5/16

Python 的 BeautifulSoup4 在Visual Studio 2013異常處理方式??

先說結論:

不要理它,但是要確實的告訴 visulal studio 2013 不要理它

如下,在例外狀況將 python 的選項給取消…

image

 

 

開始說故事時間囉:

在資料蒐集階段中,我們常會借助 Python 來進行網頁資料系統性的取得

因為 Python 有提供蠻多這類相關的套件

只要在google 上面打入 “web scraping” python 等相關字樣就會出現很多的結果;BeautifulSoup 算是其中蠻出名的一套,雖然後續有後起之秀

不過這套最大的好處是容易安裝,我有測試過另外一套,因為相依的套件太多了,所以一直無法安裝成功,但這一套就簡單多了

我想為了後續 open source 體系的編程學程之路,6月後就會開始進行新一輪的mac book 物色了… 因為很多 open source 的東西都是基於 linux 系統,移植到windows的時候總是會漏東漏西的,否則就是相依性的問題一直搞不太起來

像是 BeautifulSoup 我在Visual Studio 2013的環境中執行程式碼時就會一直報錯,後來是找到這一篇

Can't import bs4

image

嗯,說穿了就是一個一直解不掉的Bug … 因為其他的套件就不會有這樣的情形….

好吧,至少這個狀況是能被處理的

在此做個紀錄

另外其實還在微軟體系下的朋友,visual studio 2013提供的程式環境是真的還不錯用…可以到 http://pytools.codeplex.com/ 下載最新版本進行安裝

它提供了不同版號的 visaul studio 的安裝檔

2014/4/30

C#捉取網頁資料-其一

在C#建一個簡單的Console專案

然後安裝以下套件                   

image

image

image

語法上其實還蠻單純的

不過在建立新物件時,因為會用到套件的東西所以需要自己手動指定解析,IWebDriver 與 PhantomJSDriver(),將游標移至這2個項目旁邊按右鍵即可

image

此處一個簡短範例如下

            IWebDriver driver = new PhantomJSDriver();
var url = "http://en.wikipedia.org/wiki/Web_scraping";
driver.Navigate().GoToUrl(url);
var tocElements = driver.FindElements(By.CssSelector(".toctext"));



在我這個範例中,最重要的是那個 FindElements有s與沒有s …顧名思義,有s指的是複數的狀況,沒有s指的是單數的狀況;而在CssSelector中的參數要如何取得呢? 簡單就使用Firefox中的FireBug+FirePath即可


image


另外一個小技巧就是在C#的程式中設定適當的中斷點,然後利用「即時運算視窗」再確認我們捉下來的資料是不是我們需要的


因為有時候需要的文字資料裡面會有不需要的東西,則可以事先運用文字相關函數加以整理….