跟我一起制作數據采集-獲取淘寶網店寶貝數據信息(一)


創建項目並繪制界面

打開Visual Studio並創建一個基於.net 4.5的WPF項目:GetTaoBaoItems

之所以采用4.5是因為后面我們將要用到里面免費的新的異步編程特性.

繪制如下主界面:

 

下載網頁

我們知道要進行網絡數據采集必不可少就要下載網頁內容,因此我們首先需要構建一個下載網頁內容的函數:

注意using System.Net

 

我們下載哪個網頁了?

我們可以通過類似網址查看一個店鋪的所有寶貝: [淘寶店鋪地址]/search.htm,如下圖所示:

如上圖紅圈所示,寶貝是分頁顯示的那么第二頁的地址在哪里了?我們選擇第二頁:

我們可以得知第k頁的網址是:

[淘寶店鋪地址]/search.htm?search=y&viewType=grid&orderType=_newOn&pageNum=k#anchor

因此我們就可以得知我們要下載的內容應該是這樣的:

先下載第一頁的內容並獲取紅圈所示的總頁數,然后下載第二頁到最后一頁.

 

下載第一頁並獲取總頁數

為獲取按鈕添加點擊按鈕事件並在里面添加下載第一頁的內容:

下面我們將要講解我們怎么來獲取頁面總頁數這個數據.

我們這里開始將要用到正則表達式,大家最好先到如下網頁進行一定基礎的了解:

http://www.yesky.com/imagesnew/software/vbscript/html/jsgrpRegExpSyntax.htm

先添加如下引用:

然后在獲取按鈕點擊事件里添加如下代碼:

運行程序並點擊獲取按鈕:

現在將這段代碼重構為函數GetPageCount:

 

獲取寶貝信息

我們當把某一頁網頁下載回來之后要做的就是對該網頁進行分析,如下代碼所示:

運行一下:

那么下面我們將上面的代碼重構為函數AnalyPages:

運行代碼:

 

將數據顯示到界面上

我們先添加如下內容來存儲數據:

將其綁定到listbox:

修改之前的函數AnalyPages:

運行程序:

 

對程序進行異步改造

先將下載網頁的函數修改如下:

修改使用到了此函數的所有函數:

我們還需要對函數AnalyPages進行二次改造因為這里將會下載數百網頁:

我們重構一下循環的內部部分:

改寫下AnalyPages本身:

運行程序:

 

下篇文章我們將講述如何取消正在運行的異步操作,並且將最終數據導出.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM