python爬取斗图啦表情包并下载到本地

迫于无聊,又刚好正在学习python,就来记录一篇关于python爬取图片链接下载本地的入门文章...

主要用到的模块: requestBeautifulSoup4 开发之前建议先看一下官方给出关于这两个模块的文档

开发环境:

  • python3.6.6
  • vscode
  • node v8.10

不同的python版本在部分代码上可能会有差异,请务必核对好版本...

开发流程解析
第一步:需要通过request获取页面的源代码
response = requests.get(url, headers=header, timeout=30)
复制代码
第二步:分析页面结构

通过上图发现,他的每一个img标签的class都是img-responsive lazy image_dta

那么我们就可以直接通过bs4的find_all属性将其取出...

datas = soup.find_all(
        name="img", attrs={"class": "img-responsive lazy image_dta"})
复制代码

因为find_all取出的是一个数组,那么我们就需要去进行循环读取每个img标签

for data in datas:
        print("downloading:", data.attrs['data-original'])
        request.urlretrieve(
            data.attrs['data-original'], downPath+'\%s.jpg' % time.time())
复制代码

这边用的是request.urlretrieve进行资源下载...

需要注意的是,一般来讲我们都是去获取图片的src属性,但是由于这个网站使用了图片延时加载,所以我们直接获取src的话就取到他默认的图片,这边我们可以看到img的data-original属性是包含了图片的路径的,所以我们就直接取data-original就可以了....

最后main方法执行...

if __name__ == '__main__':
    pool = ThreadPool(4)
    urls = [
        "http://www.doutula.com/photo/list/?page={}".format(str(i)) for i in range(1, 3)]
    pool.map(getImg, urls)
    pool.close()
    pool.join()
复制代码

这边运用了线城池进行简单的代码优化,后面会加入代理池和队列进行优化。

代码地址:python爬取表情包并下载到本地

如果代码有帮助到您,记得点个start哦~~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值