【爬蟲問題】爬取tv.sohu.com的頁面, 提取視頻相關信息


嘗試解決下面的問題

問題: 爬取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的程序將獲取的地址寫入文本文件,爬取程序從該文本文件中讀取數據並進行爬取操作。兩個程序可以同時進行。

 


免責聲明!

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



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