写在前面
在知乎看见有不少人利用python下载了pixabay的图片,发现pixabay上的图片质量确实不错,自己也试着也写了一个小爬虫,权当练手。仅抓取照片的内容
开发环境
系统:win7 64bit
工具:python 2.7.12
IDE:pycharm 6.3
正式开始
url分析
以第2页的url为例:
总页数:165
每页图片量:60
获取方法:GET
https://pixabay.com/zh/editors_choice/?media_type=photo&pagi=2
看下“?”后的参数:
media_type :类型,这里抓取的图片,所以为photo
pagi:对应为页码,改动该参数实现对各页的访问
关于网页的请求,我们可以构造一个循环遍历访问。
内容分析
看下可抓取的字段
- 图片网址
- 作者名
- 点赞数
- 收藏量
- 评论数
右键选择核查元素,查看源代码中数据的位置
网页内容解析
根据源码公布的数据配置相应的正则表达式,此处也可以用xpath、Beautifulsoup进行数据提取:
re.compile(r'srcset="(?P<url>\S+).*?<em.*?</i>(?P<zz>.*?)</em.*?<em.*?</i>(?P<sc>.*?)</em.*?<em.*?</i>(?P<pj>.*?)</em.*?<a.*?>(?P<author>.*?)</a',re.S)
连接mysql数据库
通过MySQLdb模块连接mysql数据库,进行操作,定义一个datasave函数,详见代码:
def datasave(self):
print u'开始连接mysql数据库'
try:
conn = MySQLdb.connect(host='localhost',port=3306,user='root',passwd=''