安装:

pip3 install beautifulsoup4
pip install beautifulsoup4

Beautifulsoup4 解析器使用 lxml,原因为,解析速度快,容错能力强,效率够高

安装解析器:

pip install lxml

使用方法:

  1. 加载 beautifulsoup4 模块
  2. 加载 urllib 库的 urlopen 模块
  3. 使用 urlopen 读取网页,如果是中文,需要添加 utf-8 编码模式
  4. 使用 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,爬网站图片相关推荐

  1. python爬虫——利用BeautifulSoup4爬取糗事百科的段子

    1 import requests 2 from bs4 import BeautifulSoup as bs 3 4 #获取单个页面的源代码网页 5 def gethtml(pagenum): 6 ...

  2. Python爬虫实战之爬取网站全部图片(一)

    Python爬虫实战之爬取网站全部图片(二) Python爬虫实战之通过ajax获得图片地址实现全站图片下载(三) 一.获得图片地址 和 图片名称 1.进入网址之后 按F12  打开开发人员工具点击e ...

  3. python多线程爬取多个网址_【Python爬虫】多线程爬取斗图网站(皮皮虾,我们上车)...

    原标题:[Python爬虫]多线程爬取斗图网站(皮皮虾,我们上车) 斗图我不怕 没有斗图库的程序猿是无助,每次在群里斗图都以惨败而告终,为了能让自己在斗图界立于不败之地,特意去网上爬取了斗图包.在这里 ...

  4. 一个月入门Python爬虫,轻松爬取大规模数据

    如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样一个月入门Python爬虫,轻松爬的编程语言提供越来越多的优秀工具,让爬虫 ...

  5. python爬虫什么意思-这样学Python爬虫,想爬什么爬什么

    原标题:这样学Python爬虫,想爬什么爬什么 你知道怎么学爬虫吗?正确的入门姿势在这里!只要学好了Python爬虫,真的是可以想爬什么爬什么哟,像什么美女图片啦,美食图片啦,美景图片啦.(小编可不知 ...

  6. Python爬虫---影评的爬取

    Python爬虫-影评的爬取 介绍:爬虫练手,使用Requests库进行豆瓣影评的爬虫,做成词云图,写文章主要做一些问题解决的记录. 运行环境:python 3.8, Pycharm 关于在豆瓣爬取影 ...

  7. 【Python爬虫】从零开始爬取Sci-Hub上的论文(串行爬取)

    [Python爬虫]从零开始爬取Sci-Hub上的论文(串行爬取) 维护日志 项目简介 步骤与实践 STEP1 获取目标内容的列表 STEP2 利用开发者工具进行网页调研 2.1 提取文章链接和分页链 ...

  8. Python爬虫入门 | 5 爬取小猪短租租房信息

    小猪短租是一个租房网站,上面有很多优质的民宿出租信息,下面我们以成都地区的租房信息为例,来尝试爬取这些数据. 小猪短租(成都)页面:http://cd.xiaozhu.com/   1.爬取租房标题 ...

  9. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)

    在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...

  10. Python爬虫——利用Scrapy批量下载图片

    Python爬虫--利用Scrapy批量下载图片 Scrapy下载图片项目介绍 使用Scrapy下载图片 项目创建 项目预览 创建爬虫文件 项目组件介绍 Scrapy爬虫流程介绍 页面结构分析 定义I ...

最新文章

  1. 俄罗斯的顶级数学家,到底有多恐怖?
  2. Android ListView存在多个item样式的处理方法
  3. (第五篇)Linux操作系统基本结构介绍
  4. python string模块template_Python标准库笔记(1) — string模块
  5. Redis运维和开发学习笔记(7) 内存管理和过期策略
  6. 四元数乘法_复数的意义——四元数
  7. 获得系统异常的详细信息
  8. android4.2 音频模块启动分析,Android 音频模块学习小结
  9. UI自定义UITableView的右侧索引
  10. 腾讯校招技术岗面试经历及总结(已发offer)
  11. 使用iMazing创建配置文件时的几个重要首选项组
  12. Android界面绘制流程--------How Android Draws Views
  13. 多个Excel文件独立窗口打开方式(一键解决)
  14. 【网络重置】WLAN消失/网络适配器黄色感叹号/无法识别无线网卡/解决方法汇总/Win10家庭版(个人留档)
  15. ubuntu18.04安装vmware虚拟机
  16. 财报向好背后,特步的持续爆发力
  17. 【MySQL】--架构简介
  18. WPA_CLI 的介绍:介绍如何使用wpa_cli连接WiFi的方法
  19. 实时显示当前时间(中文版)
  20. 浮动的简介——CSS

热门文章

  1. 两款清爽全能的下载神器,还不跟迅雷说拜拜?
  2. python locale.setlocale啥意思_Python locale 多语言模块及遇到问题解决
  3. 使用FFMPEG 模仿微信拍视频
  4. 快手发布二季度及中期业绩:Q2收入191亿元 同比劲增48.8%
  5. php strpos注意问题坑,strpos函数的坑
  6. HALCON获取区域的中心点、面积和最小外接圆半径
  7. ROS发布者(Publisher)和订阅者(Subscriber)的python编程实现(讲解超级详细)
  8. gerrit is not registered in your account, and you lack ‘forge author‘ permission.
  9. 微软dowhy 项目 原理_Microsoft的DoWhy是因果推理的出色框架
  10. 7474触发器 异步三进制加法计数器