01 貓眼電影-最受期待榜榜單
02-03
參考來源:
靜覓丨崔慶才的個人博客
項目地址:
copywang/spiders_collection
實現功能:
- 使用requests庫爬取榜單
- 分析第1步獲取的HTML數據,使用正則表達式過濾採集需要的信息欄位,使用生成器存儲欄位數據,加上re.S參數連換行符一起輸出
- 存儲到log文件中
- 多線程爬取
遇到的問題:
- get請求沒有加User-Agent的header,爬蟲被拒絕訪問,添加後解決
未解決問題:
- 期待度的2個數字不顯示
原因:源代碼中展示的並不是純粹的數字。而是在頁面使用了font-face定義了字符集,並通過unicode去映射展示。簡單介紹下這種新型的web-fongt反爬蟲機制:使用web-font可以從網路載入字體
解決方案
收穫:
- 學會了基本的requests操作,請求和分析一個靜態頁面
- 學會了基本的正則表達式操作,通過()獲取得到不同的關鍵字,提取得到需要的信息
- 基本的寫入文本文件操作
- 遇到最簡單的反爬蟲,加入header參數裡面的user-agent即可
- 最簡單的多線程抓取,map函數的使用
- 字元串轉JSON生成字典,使用json.loads()方法
- 用生成器存儲演算法,而不是直接生成字典,避免存儲空間浪費,在需要用到數據的時候,使用for循環調用生成器生成數據即可
- 保存到文件使用中文的時候,open方法中要使用encoding=utf-0,write方法中要使用ensure_ascii=False)
推薦閱讀:
※如何做到R和python的完美配合?
※PyQt5如何實現窗口關閉淡出效果?
※如何理解Python裝飾器?
※新手向:十個趣味性Python腳本