Python 爬虫之 Beautifulsoup4,爬网站图片
安装:
pip3 install beautifulsoup4 pip install beautifulsoup4
Beautifulsoup4 解析器使用 lxml,原因为,解析速度快,容错能力强,效率够高
安装解析器:
pip install lxml
使用方法:
- 加载 beautifulsoup4 模块
- 加载 urllib 库的 urlopen 模块
- 使用 urlopen 读取网页,如果是中文,需要添加 utf-8 编码模式
- 使用 beautifulsoup4 解析网页
#coding: utf8 #python 3.7from bs4 import BeautifulSoup from urllib.request import urlopen#if chinese apply decode() html = urlopen("https://www.anviz.com/product/entries/1.html").read().decode('utf-8') soup = BeautifulSoup(html, features='lxml') all_li = soup.find_all("li",{"class","product-subcategory-item"}) for li_title in all_li:li_item_title = li_title.get_text()print(li_item_title)
Beautifulsoup4文档: https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#id13
方法同 jQuery 类似:
//获取所有的某个标签:soup.find_all('a'),find_all() 和 find() 只搜索当前节点的所有子节点,孙子节点 find_all() soup.find_all("a") //查找所有的标签 soup.find_all(re.compile("a")) //查找匹配包含 a 的标签 soup.find_all(id="link2") soup.find_all(href=re.compile("elsie")) //搜索匹配每个tag的href属性 soup.find_all(id=True) //搜索匹配包含 id 的属性 soup.find_all("a", class_="sister") //搜索匹配 a 标签中 class 为 sister soup.find_all("p", class_="strikeout") soup.find_all("p", class_="body strikeout") soup.find_all(text="Elsie") //搜索匹配内容为 Elsie soup.find_all(text=["Tillie", "Elsie", "Lacie"]) soup.find_all("a", limit=2) //当搜索内容满足第2页时,停止搜索 //获取tag中包含的文本内容 get_text() soup.get_text("|") soup.get_text("|", strip=True) //用来搜索当前节点的父辈节点 find_parents() find_parent() //用来搜索兄弟节点 find_next_siblings() //返回所有符合条件的后面的兄弟节点 find_next_sibling() //只返回符合条件的后面的第一个tag节点 //用来搜索兄弟节点 find_previous_siblings() //返回所有符合条件的前面的兄弟节点 find_previous_sibling() //返回第一个符合条件的前面的兄弟节点 find_all_next() //返回所有符合条件的节点 find_next() //返回第一个符合条件的节点 find_all_previous() //返回所有符合条件的节点 find_previous() //返回第一个符合条件的节点 .select() 方法中传入字符串参数,即可使用CSS选择器的语法找到tag soup.select("body a") soup.select("head > title") soup.select("p > a") soup.select("p > a:nth-of-type(2)") soup.select("#link1 ~ .sister") soup.select(".sister") soup.select("[class~=sister]") soup.select("#link1") soup.select('a[href]') soup.select('a[href="http://example.com/elsie"]').wrap() 方法可以对指定的tag元素进行包装 [8] ,并返回包装后的结果
爬取 anviz 网站产品列表图片: demo
使用了
BeautifulSoup
requests
os
#Python 自带的模块有以下几个,使用时直接 import 即可import jsonimport random //生成随机数 import datetimeimport timeimport os //建立文件夹
#coding: utf8 #python 3.7from bs4 import BeautifulSoup import requests import osURL = "https://www.anviz.com/product/entries/2.html" html = requests.get(URL).text os.makedirs("./imgs/",exist_ok=True) soup = BeautifulSoup(html,features="lxml")all_li = soup.find_all("li",class_="product-subcategory-item") for li in all_li:imgs = li.find_all("img")for img in imgs:imgUrl = "https://www.anviz.com/" + img["src"]r = requests.get(imgUrl,stream=True)imgName = imgUrl.split('/')[-1]with open('./imgs/%s' % imgName, 'wb') as f:for chunk in r.iter_content(chunk_size=128):f.write(chunk)print('Saved %s' % imgName)
爬取的这个 URL 地址是写死的,其实这个网站是分三大块的,末尾 ID 不一样,还没搞明白怎么自动全爬。
转载于:https://www.cnblogs.com/baiyygynui/p/10813046.html
Python 爬虫之 Beautifulsoup4,爬网站图片相关推荐
- python爬虫——利用BeautifulSoup4爬取糗事百科的段子
1 import requests 2 from bs4 import BeautifulSoup as bs 3 4 #获取单个页面的源代码网页 5 def gethtml(pagenum): 6 ...
- Python爬虫实战之爬取网站全部图片(一)
Python爬虫实战之爬取网站全部图片(二) Python爬虫实战之通过ajax获得图片地址实现全站图片下载(三) 一.获得图片地址 和 图片名称 1.进入网址之后 按F12 打开开发人员工具点击e ...
- python多线程爬取多个网址_【Python爬虫】多线程爬取斗图网站(皮皮虾,我们上车)...
原标题:[Python爬虫]多线程爬取斗图网站(皮皮虾,我们上车) 斗图我不怕 没有斗图库的程序猿是无助,每次在群里斗图都以惨败而告终,为了能让自己在斗图界立于不败之地,特意去网上爬取了斗图包.在这里 ...
- 一个月入门Python爬虫,轻松爬取大规模数据
如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样一个月入门Python爬虫,轻松爬的编程语言提供越来越多的优秀工具,让爬虫 ...
- python爬虫什么意思-这样学Python爬虫,想爬什么爬什么
原标题:这样学Python爬虫,想爬什么爬什么 你知道怎么学爬虫吗?正确的入门姿势在这里!只要学好了Python爬虫,真的是可以想爬什么爬什么哟,像什么美女图片啦,美食图片啦,美景图片啦.(小编可不知 ...
- Python爬虫---影评的爬取
Python爬虫-影评的爬取 介绍:爬虫练手,使用Requests库进行豆瓣影评的爬虫,做成词云图,写文章主要做一些问题解决的记录. 运行环境:python 3.8, Pycharm 关于在豆瓣爬取影 ...
- 【Python爬虫】从零开始爬取Sci-Hub上的论文(串行爬取)
[Python爬虫]从零开始爬取Sci-Hub上的论文(串行爬取) 维护日志 项目简介 步骤与实践 STEP1 获取目标内容的列表 STEP2 利用开发者工具进行网页调研 2.1 提取文章链接和分页链 ...
- Python爬虫入门 | 5 爬取小猪短租租房信息
小猪短租是一个租房网站,上面有很多优质的民宿出租信息,下面我们以成都地区的租房信息为例,来尝试爬取这些数据. 小猪短租(成都)页面:http://cd.xiaozhu.com/ 1.爬取租房标题 ...
- Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)
在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...
- Python爬虫——利用Scrapy批量下载图片
Python爬虫--利用Scrapy批量下载图片 Scrapy下载图片项目介绍 使用Scrapy下载图片 项目创建 项目预览 创建爬虫文件 项目组件介绍 Scrapy爬虫流程介绍 页面结构分析 定义I ...
最新文章
- 俄罗斯的顶级数学家,到底有多恐怖?
- Android ListView存在多个item样式的处理方法
- (第五篇)Linux操作系统基本结构介绍
- python string模块template_Python标准库笔记(1) — string模块
- Redis运维和开发学习笔记(7) 内存管理和过期策略
- 四元数乘法_复数的意义——四元数
- 获得系统异常的详细信息
- android4.2 音频模块启动分析,Android 音频模块学习小结
- UI自定义UITableView的右侧索引
- 腾讯校招技术岗面试经历及总结(已发offer)
- 使用iMazing创建配置文件时的几个重要首选项组
- Android界面绘制流程--------How Android Draws Views
- 多个Excel文件独立窗口打开方式(一键解决)
- 【网络重置】WLAN消失/网络适配器黄色感叹号/无法识别无线网卡/解决方法汇总/Win10家庭版(个人留档)
- ubuntu18.04安装vmware虚拟机
- 财报向好背后,特步的持续爆发力
- 【MySQL】--架构简介
- WPA_CLI 的介绍:介绍如何使用wpa_cli连接WiFi的方法
- 实时显示当前时间(中文版)
- 浮动的简介——CSS
热门文章
- 两款清爽全能的下载神器,还不跟迅雷说拜拜?
- python locale.setlocale啥意思_Python locale 多语言模块及遇到问题解决
- 使用FFMPEG 模仿微信拍视频
- 快手发布二季度及中期业绩:Q2收入191亿元 同比劲增48.8%
- php strpos注意问题坑,strpos函数的坑
- HALCON获取区域的中心点、面积和最小外接圆半径
- ROS发布者(Publisher)和订阅者(Subscriber)的python编程实现(讲解超级详细)
- gerrit is not registered in your account, and you lack ‘forge author‘ permission.
- 微软dowhy 项目 原理_Microsoft的DoWhy是因果推理的出色框架
- 7474触发器 异步三进制加法计数器