最近需要跑一个风格迁移cyclegan项目,这个并不难,github上随便search一个就可以,但是数据集很是头疼,没有比较合适的数据集,因此需要自己在网上寻找一些图片,但如果不使用爬虫爬数据,不知道要到猴年马月,因此需要使用爬虫爬取谷歌、百度、以及一些图片网站的图片,之前倒是学过request库,但没怎么用过,因此先开个帖子,记录下相关知识。
爬虫整体思路:页面下载 –> 页面解析 –> 数据存储
一、页面下载器
requests(必学)
Requests: HTTP for Humans™
- python爬虫入门requests模块
- Python爬虫:requests库基本使用
- Python爬虫:使用requests库下载大文件
- Python爬虫:requests多进程爬取猫眼电影榜单
- requests InsecureRequestWarning: Unverified HTTPS request is being made.
- scrapy
- selenium+chrome + PhantomJS(抓取动态网页,不推荐)
- Splash(抓取动态网页,推荐)
总结: 对于下载器而言,python自带的urllib就不要花时间去学了,学了就忘,直接requests
能满足大部分测试+抓取需求,进阶工程化scrapy
,动态网页优先找API接口
,如果有简单加密就破解,实在困难就使用splash渲染
二、页面解析器
- BeautifulSoup(入门级)
- pyquery (类似jQuery)
- lxml
- parsel
- scrapy的Selector (强烈推荐, 比较高级的封装,基于parsel)
总结: 其实解析器学习一个就够了,其他都不用学,很多培训会教你从上到下的学习,我不是很推荐,直接学习scrapy的Selector
就行,简单、直接、高效
三、数据存储
- csv文件
- sqlite3 (python自带)
- MySQL
- MongoDB
总结: 数据存储没有什么可深究的,按照业务需求来就行,一般快速测试使用MongoDB
,业务使用MySQL
四、其他工具
- execjs :执行js Python爬虫:execjs在python中运行javascript代码
- pyv8: 执行js mac安装pyv8模块-JavaScript翻译成python
- html5lib 1. Python爬虫:scrapy利用html5lib解析不规范的html文本