zoukankan      html  css  js  c++  java
  • python批量爬取猫咪图片

    不多说直接上代码

    首先需要安装需要的库,安装命令如下

    pip install BeautifulSoup

    pip install requests

    pip install urllib

    pip install lxmlfrom bs4 import BeautifulSoup # 贵族名宠网页爬虫

    import requests
    import urllib.request
    # 网址
    url = 'http://www.hengdadog.com/sale-1.html'
    def allpage():  # 获得所有网页
        all_url = []
        for i in range(1, 8): #循环翻页次数
            each_url = url.replace(url[-6], str(i))  # 替换
            all_url.append(each_url)
        return (all_url)  # 返回地址列表
    
    if __name__ == '__main__':
        img_url = allpage()  # 调用函数
        for url in img_url:
            # 获得网页源代码
            print(url)
            requ = requests.get(url)
            req = requ.text.encode(requ.encoding).decode()
            html = BeautifulSoup(req, 'lxml')
            t = 0
            # 选择目标url
            img_urls = html.find_all('img')
            for k in img_urls:
                img = k.get('src')  # 图片
                print(img)
                name = str(k.get('alt'))  # 名字,这里的强制类型转换很重要
                type(name)
                # 先本地新建一下文件夹,保存图片并且命名
                path = 'F:\CAT\'  # 路径
                file_name = path + name + '.jpg'
                imgs = requests.get(img)     # 存储入文件                                                      
                try:
                    urllib.request.urlretrieve(img, file_name)  # 打开图片地址,下载图片保存在本
    except: print("error")

    运行效果:

     上面代码有不少缺陷,比如需要手动创建目录以及判断目录是否存在,下载没有提示,于是做了些优化:

    from bs4 import BeautifulSoup  # 贵族名宠网页爬虫
    import requests
    import urllib.request
    import os
    # 网址
    url = 'http://www.hengdadog.com/sale-1.html'
    if os.path.exists('F:\CAT'):#判断目录是否存在,存在则跳过,不存在则创建
        pass
    else:
        os.mkdir('F:\CAT') 
    def allpage():  # 获得所有网页
        all_url = []
        for i in range(1, 10): #循环翻页次数
            each_url = url.replace(url[-6], str(i))  # 替换
            all_url.append(each_url)
        return (all_url)  # 返回地址列表
    
    if __name__ == '__main__':
        img_url = allpage()  # 调用函数
        for url in img_url:
            # 获得网页源代码
            print(url)
            requ = requests.get(url)
            req = requ.text.encode(requ.encoding).decode()
            html = BeautifulSoup(req, 'lxml')
            t = 0
            # 选择目标url
            img_urls = html.find_all('img')
            for k in img_urls:
                img = k.get('src')  # 图片
                print(img)
                name = str(k.get('alt'))  # 名字,这里的强制类型转换很重要
                type(name)
                # 保存图片并且命名
                path = 'F:\CAT\'  # 路径      
                file_name = path + name + '.jpg'
                imgs = requests.get(img)     # 存储入文件                                                      
                try:
                    urllib.request.urlretrieve(img, file_name)  # 打开图片地址,下载图片保存在本地,
                    print('正在下载图片到F:CAT目录······')
                except:
                    print("error")

    打包成EXE文件:

    进入文件目录输入如下命令

    pyinstaller -F get_cat.py

  • 相关阅读:
    JVM三部曲之运行时数据区 (第一部)
    c++鼠标点点,获取坐标值,放入到txt文件中
    自己实现的SVM源码
    SVM资料
    caffe源码解析
    caffe调试小结2
    caffe中卷积层和pooling层计算下一层的特征map的大小
    gpu对任意长度的矢量求和
    caffe代码调试小结
    caffe添加自己的层
  • 原文地址:https://www.cnblogs.com/huny/p/12821838.html
Copyright © 2011-2022 走看看