Python3 获取xml的返回内容:使用BS4解析库

1. BS4 介绍

BS4 全称 BeautifulSoup 4.4,是一个可以从xml或html文件中提取数据的Python库,在接口测试过程中可用于解析返回xml格式的内容,配合 requests 库,提取目标字段,最终实现参数传递和接口断言的功能。
官网:https://beautifulsoup.readthedocs.io/zh_CN/latest/

2. 基本解析语法

① find_all 查找结果是一个list对象,find 只查找一个(返回第一个),指定数量需要使用 limit 参数
② get_text() 获取 tag 标签下所有的文本
③ replace 替换字符串里面的特殊字符,如replace("\n",""),将换行删除
④ Contents返回所有的子 Tag(list)

3. 练习:爬取“摄图网”图片
import requests,json
from bs4 import BeautifulSoup  #如果没有安装,记得使用pip install beautifulsoup4 命令先完成安装

res = requests.get('http://699pic.com/sousuo-218808-13-1.html')  #访问摄图网,获取返回内容
#print(res.content)  #调试用,可观察返回内容

soup = BeautifulSoup(res.content,"html.parser")  # Python标准库解析器,详见官网
images = soup.find_all(class_="lazy")  #F12控制台看图片在哪个tag下,摄图网是在class=lazy标签节点下
#print(images)   #调试用,可观察返回内容
images_url_collection = []  #用于后续放入txt文件中

for i in images:
    try:
        title = i["title"]  #抓取图片的标题
        url_image = i["data-original"]  #抓取图片的url(data-original是从F12控制台中观察到的)
        images_url_collection.append(url_image)  #每找到一个url,放入list中,用于后续txt文件
        
        #print(title,url_image)  #打印调试用
        ima = requests.get(url_image)  #再次请求该url
#print(len(images_url_collection))  #打印调试用

        #1. 下载到指定目录
        with open("D://djangostudy//zhuatu//"+title+".jpg","wb") as file:  #匹配图片标题,wb写入权限
            file.write(ima.content)
    except Exception as msg:  #如有异常,打印异常信息
        print(msg)
'''
# 2. 如果是写入txt文件,则用以下代码
with open("D://djangostudy//zhuatu//"+"zhuatu.txt","w") as f:
    f.write("\n".join(images_url_collection))
'''



你可能感兴趣的:(Python3 获取xml的返回内容:使用BS4解析库)