zoukankan      html  css  js  c++  java
  • python接口自动化测试十八:使用bs4框架爬取图片

    # 爬图片
    # 目标网站:http://699pic.com/sousuo-218808-13-1.html
    import requests
    from bs4 import BeautifulSoup
    import os
    r = requests.get('http://699pic.com/sousuo-218808-13-1.html')

    # r.content # 返回的是字节流

    soup = BeautifulSoup(r.content, 'html.parser') # 用html解析器,查找r.content

    # tu = soup.find_all('img') # 查找所有的标签名字为“img”的对象
    tu = soup.find_all(class_="lazy") # 查找所有的标签名字为“class_="lazy"”的对象


    for i in tu:
    # print(i)
    # <img alt="洱海清晨的彩霞倒映水中高清图片" class="lazy" data-original="http://img95.699pic.com/photo/50061/5608.jpg_wh300.jpg" height="300" src="http://static.699pic.com/images/blank.png" title="洱海清晨的彩霞倒映水中图片下载" width="453.30915684497"/>
    print(i['data-original']) # 获取所有的url地址

    # 爬单张图片
    url = 'http://img95.699pic.com/photo/50061/5608.jpg_wh300.jpg'
    r = requests.get(url)
    f = open('123.jpg', 'wb') # 以二进制写入的方式打开一个名为123.jpg的文件 (后缀可随意改)
    f.write(r.content) # 把r传输的字节流写入到文件中
    f.close() # 关闭文件



    # 批量写入:

    # 创建路径, 创建一个名为“tupian”的文件夹
    curpath = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
    tupian = os.path.join(curpath, 'tupian')
    if not os.path.exists(tupian): # 判断名字为“tupian”的文件夹是否为不存在
    os.mkdir(tupian) # 不存在,则创建名字为“tupian”的文件夹
    # 批量写入图片并保存
    for i in tu:
    try:
    jpg_url = i['data-original'] # 要获取的图片的地址
    name = i['alt']
    r = requests.get(jpg_url)
    # 写入内容,放到tupian文件夹下
    f = open(os.path.join(tupian, '%s.jpg'%name), 'wb')
    f.write(r.content)
    f.close()
    except:
    pass

    
    
  • 相关阅读:
    Android面试题
    java面试题大全
    关于索引的sql语句优化之降龙十八掌
    java动态代理的实现
    java动态代理
    进程与线程
    SqlServer聚合函数
    2015年创业中遇到的技术问题:21-30
    hadoop集群ambari搭建(2)之制作hadoop本地源
    Android录屏命令、Android录Gif、Android录视频
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/9160168.html
Copyright © 2011-2022 走看看