嘗試解決下面的問題
問題: 爬取tv.sohu.com的頁面, 提取視頻相關信息,不可用爬蟲框架完成 何為視頻i關信息?屬性有哪些? 需求: 做到最大可能的頁面覆蓋率 *使用httpClient 模擬獲取頁面HtmlText源碼信息,正則出源碼視頻URL解析類HtmlText2URLlist.ashx。 正則式:href=\"(.*?)\" 選擇重要的信息進行存儲 選擇合適的數據存儲方式,便於后續使用 數據庫字段 ID、URL、IsSuccess、Title、Isdelete、VideoSize、VideTime、相關需要的視頻信息、、、 可通過參數限制要抓取視頻信息的數目 *界面視頻信息屬性選擇 要用多線程方式完成抓取 *使用多線程去處理 每個URLlist 額對象,解析參數 反防抓取策略 反爬策略:網頁的最下面添加一個JS的異步請求,此異步請求用來減計數器的值,進頁面時對IP進行加值,出頁面時減值,生成一個差值。 根據我們之前的分析,爬蟲不會執行異步JS減值請求。 這樣可以從生成的值的大小上判斷這個IP是否為爬蟲。 *分布式支持 何為分布式? *崩潰后進度恢復 通過日志記錄詳細進度情況,下次直接讀取進度,從上次未執行標記的地方開始執行 星號部分為加分項, 可只給出設計思路 1.遞歸獲取所有去重復url URL解析類獲取list之后使用字典數據類型,將URL作為key值插入,重復不插入。 或者使用list的去重方法,每次list.add()的時候做一個是否存在值的判斷。 2.訪問所有url,匹配視頻信息,寫入文本。並記錄未成功訪問的url。並記錄url位置數,可以每次成功爬完當前頁面后更新該值。 為文本數據結構為: URL + 空格 + 成功標記0或1 + URL視頻頁面相關信息1 + 相關信息2 、、、、 不建議計入文本,最好寫入數據庫,使用一個布爾類型的字段作為是否成功的標記。 3. 檢測訪問失敗的url,看是url爬取不規范或是js或是服務器反爬策略。 待定 反爬策略?有哪些,比如需要模擬HTTP的請求頭或者COOKIE值等策略。對其進行模擬添加。 4.使用堆及多線程。 多線程爬取視頻詳細信息同上。 5.分布式,可1和4同步執行 獲取URL的程序將獲取的地址寫入文本文件,爬取程序從該文本文件中讀取數據並進行爬取操作。兩個程序可以同時進行。
