import requests
from bs4 import BeautifulSoup url = 'http://www.umeituku.com/bizhitupian/meinvbizhi/' headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41'
} resp = requests.get(url=url, headers=headers)
resp.encoding = 'utf-8' # 1.把页面源代码交给BeautifulSoup进行处理,生成bs对象
page = BeautifulSoup(resp.text, 'html.parser') # 设置解析器 # 2.定位具体位置
# 第一个find('div',class_='TypeList') 只能找到外圈一层,如果此时打印出来,不好处理,有很多杂乱的信息
# 第二个find_all('a') 在前面的基础上找到每一个标签 a 返回成列表
alist = page.find('div', class_='TypeList').find_all('a') # class是python关键字,所以要写成class_ for a in alist:
# 得到页面的每一个下一层地址
# 获取满足条件的每个a标签中属性‘href’的值
href = a.get('href')
# print(href) while True:
# 获取下一层的页面
resp2 = requests.get(url=href, headers=headers)
resp2.encoding = 'utf-8' # 生成bs4对象
page2 = BeautifulSoup(resp2.text, 'html.parser') # 定位
'''
# 1.通过page2.find('div',class_="ImageBody") 定位到下面这段
<div class="ImageBody" id="ArticleId60">
<p align="center">
<a href="203957_2.htm">
<img alt="" src="https://i1.huishahe.com/uploads/tu/201911/9999/d0fcb718a2.jpg"/>
</a>
</p>
</div>
# 2.再find('img')找到
<img alt="" src="https://i1.huishahe.com/uploads/tu/201911/9999/d0fcb718a2.jpg"/>
# 3.再get得到
https://i1.huishahe.com/uploads/tu/201911/9999/d0fcb718a2.jpg
讲究一个循环渐进
'''
# 如果本页没有找到src报AttributeError错误,说明到底了,就结束本次循环
try:
src = page2.find('div', class_="ImageBody").find('img').get('src')
except AttributeError as at:
break # 下载图片
img_resp = requests.get(url=src, headers=headers)
# print(src)
# 取个文件名
name = src.split('/')[-1]
with open('other/tupian/' + name, mode='wb') as f:
f.write(img_resp.content)
print(name + '下载成功!') # 如果没有下一页报AttributeError错误,就停止本次循环。
try:
next_href = page2.find('div', class_="ImageBody").find('a').get('href')
except AttributeError as at:
break
href = 'http://www.umeituku.com/bizhitupian/meinvbizhi/' + next_href
# print(href)
resp2.close()
img_resp.close()
resp.close()

bs4解析-优美图库的更多相关文章

  1. python爬取优美图库海量图片,附加代码,一键爬取

    优美高清图片为大家提供高清美女套图赏析,非高清不录入,大家的网速要给力. 今天教大家爬取优美图库网站中高质量的图片!! 简单易上手哦~ 使用工具: Python 3.6 pycharm 相关环境: r ...

  2. bs4解析库

    beautifulsoup4 bs4解析库是灵活又方便的网页解析库,处理高效,支持多种解析器.利用它不用编写正则表达式即可方便地实现网页的提取 要解析的html标签 from bs4 import B ...

  3. bs4 解析 以及用法

    bs4解析 bs4: 环境安装: lxml bs4 bs4编码流程: 1.实例化一个bs4对象,且将页面源码数据加载到该对象中 2.bs相关的方法或者属性实现标签定位 3.取文本或者取属性 bs的属性 ...

  4. Python3.x:bs4解析html基础用法

    Python3.x:bs4解析html基础用法 代码: import urllib.request from bs4 import BeautifulSoup import re url = r'ht ...

  5. 爬虫的三种解析方式(正则解析, xpath解析, bs4解析)

    一 : 正则解析 : 常用正则回顾: 单字符: . : 除换行符以外的所有字符 [] : [aoe] [a-w] 匹配集合中任意一个字符 \d : 数字 [0-9] \D : 非数字 \w : 非数字 ...

  6. bs4解析

    介绍:将一个html文档转换成BeautifulSoup对象,然后通过对象的方法或属性查找指定的节点内容 转换本地文件: ​ soup = BeautifulSoup(fp,'lxml') fp为文档 ...

  7. python bs4解析网页时 bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to inst(转)

    Python小白,学习时候用到bs4解析网站,报错 bs4.FeatureNotFound: Couldn't find a tree builder with the features you re ...

  8. 爬虫系列二(数据清洗--->bs4解析数据)

    一 BeautifulSoup解析 1 环境安装 - 需要将pip源设置为国内源,阿里源.豆瓣源.网易源等 - windows (1)打开文件资源管理器(文件夹地址栏中) (2)地址栏上面输入 %ap ...

  9. pytho爬虫使用bs4 解析页面和提取数据

    页面解析和数据提取 关注公众号"轻松学编程"了解更多. 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值.内容一般分为两部分,非结构化的数据 和 结构化的 ...

  10. bs4解析要获取被注掉的部分需先将注释符号去掉

    <div class="xzcf-content"> <div id="sfxz"> <div class="main- ...

随机推荐

  1. 八、Doris外部表及数据导入

    DorisDB提供了多种导入方式,用户可以根据数据量大小.导入频率等要求选择最适合自己业务需求的导入方式. 数据导入:  1.离线数据导入:如果数据源是Hive/HDFS,推荐采用 Broker Lo ...

  2. 程序员天天 CURD,怎么才能成长,职业发展的思考(3)

    公司赚钱流程中,你在哪一个环节 思考你在哪一个环节 在一家提供互联网产品或服务的公司中,开发出产品或提供服务,卖产品卖服务给客户,赚取金钱获得利润,有了利润这家公司就能给员工发工资,公司才能存活下去, ...

  3. PageOffice 在线打开 word 文件实现痕迹保留、键盘批注、手写批注

    一.痕迹保留 Word中的痕迹一般指的是审阅文档的用户对文档所做的修改(插入和删除)操作.在PageOffice的强制留痕模式下,用户对文档所做的任何修改都会以痕迹的形式保留下来,不同用户对文档做的修 ...

  4. 『手撕Vue-CLI』编码规范检查

    前言 这篇为什么是编码规范检查呢?因为这是一个很重要的环节,一个好的编码规范可以让代码更加清晰易读,在官方的 VUE-CLI 也是有着很好的编码规范的,所以我也要加入这个环节. 其实不管在哪个项目中, ...

  5. 通过XML标记生成word

    思路 word生成可以通过标签,也可以通过XML元素. word文档实际上是由文档对象模型描述的,因此我们能够通过对文档对象进行操作去生成word. 由于word允许我们附加XML结构(元素),如下: ...

  6. Chart.js (v2.9.4)概要介绍

    chart.js是一个非常优秀的开源图表插件,扩展非常灵活,同时也提供了大量的钩子函数,给与用户添加自定义插件,实现个性化的需求. 具体的优势特点,这里不详述,网上大把资料,现开始正式深入了解这个插件 ...

  7. vue3 如何在 jsx中使用 component 组件

    component 组件不像其它的内置组件(tansition.transitionGroup),可以直接从 vue 中直接导出,所有要在 jsx 使用component就要使用 h 函数 使用 vu ...

  8. Vue cli之项目打包

    在项目根目录中执行如下命令: npm run build 注:Vue脚手架打包的项目必须在服务器上运行,不能直接双击运行: 在打包之后项目中出现 dist 目录,dist 目录就是 Vue脚手架项目的 ...

  9. Pyinstaller打包exe的反编译——LitCTF 2024(公开赛道)ezpython!!!!!

    这个工具折磨了我很久,搭配题目记录一下... 题目 Die 打包工具: PyInstaller 建议下载GitHub的:GitHub - extremecoders-re/pyinstxtractor ...

  10. Java中的包(Package)

    # 包(Package) **为方便管理类(按照不同的功能管理类),解决同名问题的发生** - 使用`package关键字`修饰包 - **类名(全类名)=包名(地址)+类名简称** ```java ...