標籤:

01 貓眼電影-最受期待榜榜單

參考來源:

靜覓丨崔慶才的個人博客

項目地址:

copywang/spiders_collection

實現功能:

  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)

推薦閱讀:

如何做到R和python的完美配合?
PyQt5如何實現窗口關閉淡出效果?
如何理解Python裝飾器?
新手向:十個趣味性Python腳本

TAG:Python | 爬虫 |