前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python第四个项目:爬取简书任意一篇文章里所有图片(通用)

Python第四个项目:爬取简书任意一篇文章里所有图片(通用)

作者头像
王小婷
发布2019-08-14 14:29:44
5180
发布2019-08-14 14:29:44
举报
文章被收录于专栏:编程微刊编程微刊

代码如下:

代码语言:javascript
复制
# _*_coding:utf-8_*_
from urllib.parse import urljoin
import requests
import re
import os
class GetImage(object):
    def __init__(self, url):
        self.url = url
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'
        }
        self.dir_path = os.path.dirname(os.path.abspath(__file__))
        self.path = self.dir_path + '/imgs'
        isExists = os.path.exists(self.dir_path + '/imgs')
        # 创建目录
        if not isExists:
            os.makedirs(self.path)

    def download(self, url):
        try:
            res = requests.get(url, headers=self.headers)
            return res
        except Exception as E:
            print(url + '下载失败,原因:' + E)

    def parse(self, res):
        content = res.content.decode()
        # print(content)
        img_list = re.findall(r'<img.*?src="(.*?)"', content, re.S)
        img_list = [urljoin(self.url, url) for url in img_list]
        return img_list

    def save(self, res_img, file_name):
        if (file_name.endswith('jpg')) or (file_name.endswith('png')):
            file_name = file_name
        else:
            file_name = file_name + '.jpg'

        if res_img:
            with open(file_name, 'wb') as f:
                f.write(res_img.content)
            print(url + '下载成功')

    def run(self):
        # 下载
        res = self.download(self.url)
        # 解析
        url_list = self.parse(res)
        # 下载图片
        for url in url_list:
            res_img = self.download(url)
            name = url.strip().split('/').pop()
            file_name = self.path + '/' + name
            # 保存
            self.save(res_img, file_name)

if __name__ == '__main__':
    url_list = ['https://www.jianshu.com/p/8a11293ab640']

    for url in url_list:
        text = GetImage(url)
        text.run()

运行之后得到一个自动生成的imgs文件夹

打开 文件夹可以看到,链接里面所有的图片已经抓取下来了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.08.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档