目的與用途
在現實的項目開發過程中,我們需要許多的第三方接口。而這些第三方接口由於些許條件的限制,一時拿不到。譬如:淘寶網今日特價商品、百度的熱搜榜等爬蟲
是個應用程式,自動提取網頁的程序通過數據篩選、過濾,得到有用的信息,一般是為搜尋引擎服務或者作為內容來源 Application+WebRequest+Filter+Data+Threads
爬蟲是否違法?
不問自取謂之偷。爬蟲能拿到的數據都是瀏覽器能訪問到的,是公開的數據不要基於盈利牢記上面兩點,爬蟲並不違法爬蟲攻防
robot協議(道德防線):根域名/robots.txt 弱的約定服務端請求信息(urlrefer/agent){爬蟲模擬好用戶登錄{模擬請求帶上cookie}IP黑名單白名單{代理請求} 識別爬蟲後定期返回驗證碼{換IP/打碼平臺}js動態加載/動態修改/數據圖片化{可以解決}總的來說 道高一尺魔高一丈,任何信息是無法阻止抓取的實現爬蟲
第一步:下載Html。使用HttpWebRequest模擬請求,設置超時時間,請求頭等操作HttpWebResponse response = request.GetResponse() as HttpWebResponse 發起請求response.StatusCode 獲取請求是否成功response.GetResponseStream() 返回的數據以數據流的形式注意:爬取網頁後數據與網頁上的不一樣時請檢查 爬取網頁的編碼方式。並在獲取的時候設定編碼格式,默認編碼格式為Utf-8第二步:抓取需要的數據使用XPATH語法,對網頁數據進行定點抓取。
步驟:
打開瀏覽器,到需要爬取的頁面F12 打開Developer Tools 找到需要爬去的html,找到需要數據的行右鍵找到Copy 下拉項中的 Copy Xpath 便複製到Xpath 字符串HtmlAgilityPack 是一個好的工具 基本使用 如下HtmlDocument document = new HtmlDocument();document.LoadHtml(html);
string pathx = @"//*[@id='brand-11026']/a";
HtmlNode node = document.DocumentNode.SelectSingleNode(pathx);
string title = node.Attributes["title"].Value;
string path = "//*[@class=\"J_valueList v-fixed\"]/li";
HtmlNodeCollection nodeCollection = document.DocumentNode.SelectNodes(path);
foreach (var node in nodeCollection)
{Console.WriteLine(node.Id);}
本篇文章只簡單介紹爬蟲.....小編初次學習爬蟲不對或需要改進的地方請大家在下方評論留言,小編看到會第一時間回復