這次我用的是python3.6,scrapy在python2.7,3.5的使用方法都不同所以要特別注意,
列如 在python3.5的開發環境下scrapy 的主爬蟲文件可以使用 from urllib import parse 而python3.6就不行,還有許多不兼容的黎姿例子還需我們去發現
一般python操作mysql數據時,都會用到MYSQLDB,目前來講MYSQLDB只在2.7版板上支持
所以我選擇了pymysql 和 sqlalchemy 用於scrapy爬取數據時存儲數據,但在python3.6版本中sqlalchemy效果不佳,代碼冗雜,所以我使用了pymysql
數據存儲的過程中編碼的問題十分重要,下圖為大家展示錯誤的案例:
如上圖所示我正常爬取了糗事百科某一頁的用戶名列表,結果如下:
現在我引入pymysql直接進行數據存儲
在這里我將下載的數據強制轉換為字符串存儲,執行完畢后查看數據表:
很明顯亂碼了
下面我將在scrapy里pipelines.py引入pymysql模塊並進行改進:
運行結果如下: