# 爬图片
# 目标网站: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

												

python接口自动化测试十八:使用bs4框架爬取图片的更多相关文章

  1. python接口自动化测试十七:使用bs4框架进行简单的爬虫

    安装:beautifulsoup4 from bs4 import BeautifulSoup yoyo = open('yoyo.html', 'r')   # 以读的方式打开“yoyo.html” ...

  2. python接口自动化测试十九:函数

    # 函数 a = [1, 3, 6, 4, 85, 32, 46]print(sum(a)) # sum,求和函数 def add(): a = 1, b = 2, return a + bprint ...

  3. python接口自动化测试十六:unittest完成用例

    import unittestimport requests def add(a, b): print('前置条件!!!!!:如登录') return a + b class TestAAA(unit ...

  4. python接口自动化测试十五:解决密码动态,无法登录情况

    解决问题:每次密码都是变化的,无法通过账号密码登录 (总不能每次去fiddler复制吧????) 解决思路: 1.先用selenium调用浏览器(不会selenium的自己想办法了), 2.登录后从浏 ...

  5. python接口自动化测试十四: 用正则表达式提取数据

    import requests import re url = 'xxxx' r = requests.post(url) # 正则公式: postid = re.findall(r"(.+ ...

  6. python接口自动化测试十二:对返回的json的简单操作

    # 1.requests里面自带解析器转字典 print(r.json()) print(type(r.json())) # 取出json中的'result_sk_temp'字段 # {"r ...

  7. python接口自动化测试十:字典、字符串、json之间的简单处理

    # 字典 t = { #   键:值     '': '',     '': ''     } # 字典 # dict      key: value   key是唯一的,无序的 h = {      ...

  8. Python接口自动化测试框架实战 从设计到开发

    第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...

  9. 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

    引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

随机推荐

  1. VBScript进阶篇一

    VBScript进阶篇一       作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编译型与解释型的区别 其实我们通过一张图就可以大致了解一下,他们运行机制. 想要了解更多,请 ...

  2. ElasticSearch 批量增加索引

    服务端批量增加索引,版本是5.1.1 TransportClient client; Settings esSettings = Settings.builder() .put("clust ...

  3. javascript 模块化规范

    服务器端规范 - CommonJS Node.js 浏览器端规范 - AMD RequireJS - CMD SeaJS

  4. 通过 LPeg 介绍解析表达式语法(Parsing Expression Grammars)

    通过 LPeg 介绍解析表达式语法(Parsing Expression Grammars) 译者: FreeBlues 修订版本: 1.00 最新链接: http://www.cnblogs.com ...

  5. web中的乱码处理

    1 .web中的中文乱码处理 1.页面设置pageEncoding="UTF-8" <%@ page contentType="text/html;charset= ...

  6. error: control may reach end of non-void function [-Werror,-Wreturn-type]

    编译出现如下错误 error: control may reach end of non-void function [-Werror,-Wreturn-type] 这个错误可能和编译器有关(在相同代 ...

  7. Storm Topology 提交 总结---Kettle On Storm 实现

    一,目的 在学习的过程中,需要用到 PDI---一个开源的ETL软件.主要是用它来设计一些转换流程来处理数据.但是,在PDI中设计好的 transformation 是在本地的执行引擎中执行的,(参考 ...

  8. SQL 语言类型

    结构化查询语言(Structured Query Language),简称SQL,是数据库编程的核心语言. SQL的发展是从1974年开始的,其发展过程如下: 1974年 - 由Boyce和Chamb ...

  9. 工控安全入门之Ethernet/IP

    这一篇依然是协议层面的,协议层面会翻译三篇,下一篇是电力系统中用的比较多的DNP3.这一篇中大部分引用的资料都可以访问到,只有一篇reversemode.com上的writeup(http://rev ...

  10. JavaScript之Array/数组小结

    MDN-Array的属性/方法:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Arr ...