首页 > 编程语言 > 详细

Python 爬虫-下载图片

时间:2017-02-04 16:31:36      阅读:289      评论:0      收藏:0      [点我收藏+]

运行系统:MAC

Python版本:python3.5

主要模块:Requests、BeautifulSoup

下载网站Unsplash中的图片:

程序结构图如下:

技术分享

代码如下:

技术分享
import requests
import os
from bs4 import BeautifulSoup

class Picture():

    def __init__(self):
        # 给请求指定一个请求头来模拟chrome浏览器
        self.headers = {
            User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36}

        self.web_url = https://unsplash.com/
        self.base_path = os.path.dirname(__file__)

    def makedir(self, name):
        path = os.path.join(self.base_path, name)
        isExist = os.path.exists(path)
        if not isExist:
            os.makedirs(path)
            print(File has been created.)
        else:
            print(The file is existed.)
        #切换到该目录下
        os.chdir(path)

    def request(self, url):
        r = requests.get(url, headers=self.headers)
        return r

    def get_img(self):
        r = self.request(self.web_url)
        # r.text是返回的网页HTML;这里的find_all(‘a‘, class_=‘cV68d‘) 是找到所有class为cV68d的a标签,返回的是一个list,所以可以用for循环获取每个a标签
        all_a = BeautifulSoup(r.text, lxml).find_all(a, class_=cV68d)
        self.makedir(pictures)
        for a in all_a:
            # a标签中完整的style字符串
            img_str = a[style]
            # 使用python的切片功能街区双引号之间的内容
            img_url = img_str[img_str.index(") + 1: img_str.index(", img_str.index(") + 1)]
            start_pos = img_url.index(photo)
            end_pos = img_url.index(?)
            file_name = img_url[start_pos: end_pos] + .jpg
            with open(file_name, ab) as f:
                r = requests.get(img_url)
                f.write(r.content)

if __name__ == __main__:
    picture = Picture()
    picture.get_img()
下载图片

 

Python 爬虫-下载图片

原文:http://www.cnblogs.com/fredkeke/p/6365046.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!