scrapy+selenium+Chrome+微信公眾號爬蟲
概述
1、微信公眾號爬蟲思路:
2、scrapy框架圖
3、scrapy經典教程
參考:
4、其它
參考:
實踐
1、環境的安裝
- selenium安裝(pip install selenium)
- chromedriver安裝(注意與chrome版本兼容問題)
- beautifulsoup4
- scrapy
- MongoDB、pymongo
MongoDB:
具體命令如下:
python連接MongoDB,需安裝pip install mongoengine
啟動:
sudo ./mongod --port 27017 dbpath "/software/mongodb-4.0.0/data/db" --logpath "/software/mongodb-4.0.0/log/mongodb.log" --logappend --replSet rs0
Windows下MongoDB數據導出:
mongodump --port 27017 -d wechat -o D:\MongoDB
Linux下MongoDB數據導入:
./mongorestore -h 127.0.0.1 --port 27017 -d wechat --drop /software/mongodb-4.0.0/wechat
數據導入時注意:
Do you run mongo in replica set, i.e., mongod --replSet rs0?
If yes, please remember to run in your mongo shell the command: rs.initiate()
參考:
2、cookie獲取
selenium進行登錄驗證,保存cookies,為scrapy做准備。
3、爬蟲
- cookies:scrapy spider初始化函數調用Chromedriver,並獲取cookies
- 定位:spider初始化函數利用Chromedriver定位到需要抓取的頁面
- 解析:parse函數處理Chromedriver自動定scrapy爬蟲利用selenium實現用戶登錄和cookie傳遞位的頁面信息,以及下一頁URL
- 保存:scrapy配置MongoDB保存數據
參考:
scrapy爬蟲利用selenium實現用戶登錄和cookie傳遞
4、django調用爬蟲
5、django構建搜索引擎,搜索爬過的信息
參考:
環境配置:
elasticsearch-rtf安裝、pip install mongo-connector、pip install mongo-connector[elastic5]、pip install elastic2-doc-manager
MongoDB數據同步到elasticsearch:
mongo-connector -m localhost:27017 -t localhost:9200 -d elastic2_doc_manager
其它問題
1、selenium在新頁面定位元素問題
參考:
解決Selenium彈出新頁面無法定位元素問題(Unable to locate element)
3、在管道中關閉爬蟲
spider.crawler.engine.close_spider(spider, 'bandwidth_exceeded')