1. 程式人生 > >【學習】01 貓眼電影爬蟲-最受期待榜榜單

【學習】01 貓眼電影爬蟲-最受期待榜榜單

參考來源:

專案地址:

實現功能:

  1. 使用requests庫爬取榜單
  2. 分析第1步獲取的HTML資料,使用正則表示式過濾採集需要的資訊欄位,使用生成器儲存欄位資料,加上re.S引數連換行符一起輸出
  3. 儲存到log檔案中
  4. 多執行緒爬取

遇到的問題:

  1. get請求沒有加User-Agent的header,爬蟲被拒絕訪問,新增後解決

未解決問題:

  1. 期待度的2個數字不顯示

原因:原始碼中展示的並不是純粹的數字。而是在頁面使用了font-face定義了字符集,並通過unicode去對映展示。簡單介紹下這種新型的web-fongt反爬蟲機制:使用web-font可以從網路載入字型

解決方案

收穫:

  1. 學會了基本的requests操作,請求和分析一個靜態頁面
  2. 學會了基本的正則表示式操作,通過()獲取得到不同的關鍵字,提取得到需要的資訊
  3. 基本的寫入文字檔案操作
  4. 遇到最簡單的反爬蟲,加入header引數裡面的user-agent即可
  5. 最簡單的多執行緒抓取,map函式的使用
  6. 字串轉JSON生成字典,使用json.loads()方法
  7. 用生成器儲存演算法,而不是直接生成字典,避免儲存空間浪費,在需要用到資料的時候,使用for迴圈呼叫生成器生成資料即可
  8. 儲存到檔案使用中文的時候,open方法中要使用encoding='utf-0',write方法中要使用ensure_ascii=False)