当前位置: 首页 > news >正文

网龙沧州网站制作图片 wordpress

网龙沧州网站制作,图片 wordpress,成都好玩的地方景点推荐,公众号开发小程序开发python爬虫8#xff1a;bs4库 前言 ​ python实现网络爬虫非常简单#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点#xff0c;方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论#xff0c;并不会对网站产生不好…python爬虫8bs4库 前言 ​ python实现网络爬虫非常简单只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论并不会对网站产生不好影响。 目录结构 文章目录 python爬虫8bs4库1. 概述与安装2. 解析器3. 方法讲解3.1 第一个例子3.2 初始化3.3 通过标签名来获取元素3.4 通过属性来获取元素3.5 通过find方法来获取元素常用3.6 通过css语法获取元素3.7 获取信息 4. 总结 1. 概述与安装 ​ bs4是BeautifulSoup4的简称它是一个可以从HTML中提取数据的Python第三方库也是我们将要讲解的第二个解析库除此之外还有常用的pyquery主要通过css语法来获取我们不讲解因为需要学习过前端的css、re正则表达式库基础库但是用于爬虫里比较麻烦因此也不讲解。 ​ 其安装非常简单 pip install Beautifulsoup42. 解析器 ​ 对于bs4这个库来说我们主要使用的是BeautifulSoup对象使用方法如下 # 导包 from bs4 import BeautifulSoup # 创建对象 soup BeautifulSoup() print(type(soup))# 结果为 # class bs4.BeautifulSoup​ 而BeautifulSoup在解析网页的时候依赖于其他的解析器如我们之前讲解过的lxml等等。下面给出常见的四种解析器Python标准库、lxml解析器、xml解析器、html5lib解析器。上面四种解析器各有优点也有缺点其中最常用的就是lxml因为其解析速度和容错性都比较好。 ​ 下面给出四种解析器的优缺点 解析器优点缺点Python标准库python内置标准库执行速度适中文档容错强python2.x与python3.2.2之前的版本容错能力差lxml速度快、容错能力强需要安装C语言库xml速度快唯一支持XML文档的解析器需要安装C语言库html5lib最好的容错性速度慢 什么是容错性 ​ 这里解释一下什么是容错性。我们有时候传给BeautifulSoup的网页源代码并不完整或者说格式不标准其中常见的如table标签的写法table标签现在一般都采取的简写的方式而不是标准的写法。这时不同的解析器就有不同的容错性或者说对于修正性。 3. 方法讲解 3.1 第一个例子 ​ 下面给出bs4的一个小小例子让大家有一个印象 from bs4 import BeautifulSouptext div classclassify clearfixa href/4kfengjing/ title4K风景图片4K风景/aa href/4kmeinv/ title4K美女图片4K美女/aa href/4kyouxi/ title4K游戏图片4K游戏/aa href/4kdongman/ classcurr title4K动漫图片4K动漫/aa href/4kyingshi/ title4K影视图片4K影视/aa href/4kmingxing/ title4K明星图片4K明星/aa href/4kqiche/ title4K汽车图片4K汽车/aa href/4kdongwu/ title4K动物图片4K动物/aa href/4krenwu/ title4K人物图片4K人物/aa href/4kmeishi/ title4K美食图片4K美食/aa href/4kzongjiao/ title4K宗教图片4K宗教/aa href/4kbeijing/ title4K背景图片4K背景/a /divsoup BeautifulSoup(text,lxml) # 需要安装lxml库哦 # 提取出 所有类名 tag_list soup.find_all(a) for tag in tag_list:print(tag.text)​ 结果为 4K风景 4K美女 4K游戏 4K动漫 4K影视 4K明星 4K汽车 4K动物 4K人物 4K美食 4K宗教 4K背景3.2 初始化 ​ 跟lxml一样第一个步骤仍然是初始化这个步骤是固定的就不多说了代码如下 from bs4 import BeautifulSoup soup BeautifulSoup(text,lxml) # 需要安装lxml库哦 # text为html源码字符串格式3.3 通过标签名来获取元素 ​ 第一个选择元素的方法如下示例 from bs4 import BeautifulSouptext div classclassify clearfixa href/4kfengjing/ title4K风景图片4K风景/aa href/4kmeinv/ title4K美女图片4K美女/aa href/4kyouxi/ title4K游戏图片4K游戏/aa href/4kdongman/ classcurr title4K动漫图片4K动漫/aa href/4kyingshi/ title4K影视图片4K影视/aa href/4kmingxing/ title4K明星图片4K明星/aa href/4kqiche/ title4K汽车图片4K汽车/aa href/4kdongwu/ title4K动物图片4K动物/aa href/4krenwu/ title4K人物图片4K人物/aa href/4kmeishi/ title4K美食图片4K美食/aa href/4kzongjiao/ title4K宗教图片4K宗教/aa href/4kbeijing/ title4K背景图片4K背景/a /divsoup BeautifulSoup(text,lxml) # 需要安装lxml库哦 # 方法一 result soup.div print(type(result)) print(-*50) print(result)​ 结果如下 class bs4.element.Tag -------------------------------------------------- div classclassify clearfix a href/4kfengjing/ title4K风景图片4K风景/a a href/4kmeinv/ title4K美女图片4K美女/a a href/4kyouxi/ title4K游戏图片4K游戏/a a classcurr href/4kdongman/ title4K动漫图片4K动漫/a a href/4kyingshi/ title4K影视图片4K影视/a a href/4kmingxing/ title4K明星图片4K明星/a a href/4kqiche/ title4K汽车图片4K汽车/a a href/4kdongwu/ title4K动物图片4K动物/a a href/4krenwu/ title4K人物图片4K人物/a a href/4kmeishi/ title4K美食图片4K美食/a a href/4kzongjiao/ title4K宗教图片4K宗教/a a href/4kbeijing/ title4K背景图片4K背景/a /div​ 可见这种方法的语法形式为 xxx.Tag_name。这种选择还支持嵌套选择如下 # 为了大家方便省略了相同的代码下面只给出需要修改的代码 # 修改之前result soup.div # 修改之后 result soup.div.a​ 结果为 class bs4.element.Tag -------------------------------------------------- a href/4kfengjing/ title4K风景图片4K风景/a​ 可见当有多个符合条件的标签时选择第一个符合的标签。 ​ 缺点选择性很低无法增加附加条件进行更深层次的筛选。 ​ 小小的总结一下 1. xxx.Tag_name 2. 当有多个符合条件的标签时选择第一个符合的标签。3.4 通过属性来获取元素 ​ 主要依靠一些属性来获取如contents、children、descendants等等。下面一一讲解其作用 子节点 ​ 属性 contents、children ​ 作用 获取目标的直接子节点 ​ 注意contents返回的是列表而children返回的是生成器。 ​ 比如 from bs4 import BeautifulSouptext div classclassify clearfixa href/4kfengjing/ title4K风景图片4K风景/aa href/4kmeinv/ title4K美女图片4K美女/aa href/4kyouxi/ title4K游戏图片4K游戏/aa href/4kdongman/ classcurr title4K动漫图片4K动漫/aa href/4kyingshi/ title4K影视图片4K影视/aa href/4kmingxing/ title4K明星图片4K明星/aa href/4kqiche/ title4K汽车图片4K汽车/aa href/4kdongwu/ title4K动物图片4K动物/aa href/4krenwu/ title4K人物图片4K人物/aa href/4kmeishi/ title4K美食图片4K美食/aa href/4kzongjiao/ title4K宗教图片4K宗教/aa href/4kbeijing/ title4K背景图片4K背景/a /divsoup BeautifulSoup(text,lxml) # 需要安装lxml库哦# 方法二 print(type(soup.div.contents)) for child in soup.div.contents:print(child)​ 结果为 class list a href/4kfengjing/ title4K风景图片4K风景/a a href/4kmeinv/ title4K美女图片4K美女/a a href/4kyouxi/ title4K游戏图片4K游戏/a a classcurr href/4kdongman/ title4K动漫图片4K动漫/a a href/4kyingshi/ title4K影视图片4K影视/a a href/4kmingxing/ title4K明星图片4K明星/a a href/4kqiche/ title4K汽车图片4K汽车/a a href/4kdongwu/ title4K动物图片4K动物/a a href/4krenwu/ title4K人物图片4K人物/a a href/4kmeishi/ title4K美食图片4K美食/a a href/4kzongjiao/ title4K宗教图片4K宗教/a a href/4kbeijing/ title4K背景图片4K背景/a子孙节点 ​ 属性 descendants ​ 作用 获取目标的所有子孙元素 ​ 返回值 生成器 ​ 比如 from bs4 import BeautifulSoup text ul classclearfixlia href/tupian/26783.html target_blankimg src/uploads/allimg/210122/210154-16113205145cce.jpg alt动漫女孩 黑发 露肩 4k壁纸3840x2160 /b动漫女孩 黑发 露肩 4k壁/b/a/lilia href/tupian/26780.html target_blankimg src/uploads/allimg/210122/195550-1611316550c9d7.jpg alt古风 美少女 伞 长发 女孩大长腿4k唯美动漫壁纸 /b古风 美少女 伞 长发 女/b/a/lilia href/tupian/24695.html target_blankimg src/uploads/allimg/190824/212516-1566653116f355.jpg alt下午 趴在桌子的女孩4k动漫壁纸3840x2160 /b下午 趴在桌子的女孩4k动/b/a/li /ulsoup BeautifulSoup(text,lxml) # 需要安装lxml库哦# 方法二 print(type(soup.ul.descendants)) for child in soup.ul.descendants:print(child)​ 结果 class generator# 显示其中一个结果 # 从下面可以看出一一获取里面所有的值li a href/tupian/26783.html target_blank img alt动漫女孩 黑发 露肩 4k壁纸3840x2160 src/uploads/allimg/210122/210154-16113205145cce.jpg/ b动漫女孩 黑发 露肩 4k壁/b /a /lia href/tupian/26783.html target_blank img alt动漫女孩 黑发 露肩 4k壁纸3840x2160 src/uploads/allimg/210122/210154-16113205145cce.jpg/ b动漫女孩 黑发 露肩 4k壁/b /aimg alt动漫女孩 黑发 露肩 4k壁纸3840x2160 src/uploads/allimg/210122/210154-16113205145cce.jpg/b动漫女孩 黑发 露肩 4k壁/b 动漫女孩 黑发 露肩 4k壁父节点 ​ 属性 parent ​ 作用 获取目标节点的父节点 祖先节点 ​ 属性 parents ​ 作用 获取目标节点的所有祖先节点 ​ 返回值 生成器 兄弟节点 ​ 属性1 next_sibling ​ 作用 获取下一个兄弟节点 ​ 属性2 previous_sibling ​ 作用 获取上一个兄弟节点 ​ 属性3 next_siblings ​ 作用 获取下面的所有兄弟节点 ​ 属性4 previous_siblings ​ 作用 获取之前的所有兄弟节点 3.5 通过find方法来获取元素常用 find_all()方法 ​ 作用 查询出所有符合条件的元素 ​ 常用参数 name、attrs、text ​ 参数讲解 name 想要获取的节点的节点名字attrs 想要获取的节点的属性根据这个属性来筛选接收字典text 可以指定正则表达式或者字符串去匹配元素的内容 ​ 示例一name 和 attrs 的配合使用 from bs4 import BeautifulSoup text ul classclearfixlia classhello href/tupian/26783.html target_blank你好/aa classwhite href/tupian/26783.html target_blank白菜/aa classwhite href/tupian/26783.html target_blank白菜/aa classwhite href/tupian/26783.html target_blank白菜/aa classwhite href/tupian/26783.html target_blank白菜/aa classblack href/tupian/26783.html target_blank黑彩/a/li /ulsoup BeautifulSoup(text,lxml) # 需要安装lxml库哦 # 筛选出白菜 result_list soup.find_all(a,attrs{class:white}) print(type(result_list)) print(-*50) for result in result_list:print(result)​ 结果 class bs4.element.ResultSet -------------------------------------------------- a classwhite href/tupian/26783.html target_blank白菜/a a classwhite href/tupian/26783.html target_blank白菜/a a classwhite href/tupian/26783.html target_blank白菜/a a classwhite href/tupian/26783.html target_blank白菜/a​ 示例二 text的使用 import re from bs4 import BeautifulSoup text ul classclearfixlia classhello href/tupian/26783.html target_blank你好/aa classwhite href/tupian/26783.html target_blank白菜,你好我是黑菜/aa classwhite href/tupian/26783.html target_blank白菜你好你好/aa classwhite href/tupian/26783.html target_blank我是一个小白菜/aa classwhite href/tupian/26783.html target_blank大白菜/aa classblack href/tupian/26783.html target_blank黑彩/a/li /ulsoup BeautifulSoup(text,lxml) # 需要安装lxml库哦 # 筛选出白菜 result_list soup.find_all(textre.compile(r白菜)) for result in result_list:print(result)​ 结果为 白菜,你好我是黑菜 白菜你好你好 我是一个小白菜 大白菜find()方法: ​ 作用 返回第一个匹配成功的元素 find_parents()和find_parent(): ​ find_parents():返回所有的祖先节点 ​ find_parent():返回直接父节点 find_next_siblings()和find_next_sibling(): ​ find_next_siblings(): 返回后面所有的兄弟节点 ​ find_next_sibling(): 返回下一个兄弟节点 find_previous_siblings()和find_previous_sibling(): ​ find_previous_siblings() 返回之前的所有的兄弟节点 ​ find_previous_sibling() 返回上一个兄弟节点 3.6 通过css语法获取元素 ​ 如果你学过css那么你也可以采取css来写不过我建议你选择pyquery模块来写css因为pyquery专门使用css来解析网页。 ​ 写法 xxx.select(css代码 )​ 作用 返回所有符合css条件的元素​ 示例 from bs4 import BeautifulSoup text ul classclearfixlia classhello href/tupian/26783.html target_blank你好/aa classwhite href/tupian/26783.html target_blank白菜,你好我是黑菜/aa classwhite href/tupian/26783.html target_blank白菜你好你好/aa classwhite href/tupian/26783.html target_blank我是一个小白菜/aa classwhite href/tupian/26783.html target_blank大白菜/aa classblack href/tupian/26783.html target_blank黑彩/a/li /ulsoup BeautifulSoup(text,lxml) # 需要安装lxml库哦 # 筛选出白菜 result_list soup.select(.white) for result in result_list:print(result)​ 结果如下 a classwhite href/tupian/26783.html target_blank白菜,你好我是黑菜/a a classwhite href/tupian/26783.html target_blank白菜你好你好/a a classwhite href/tupian/26783.html target_blank我是一个小白菜/a a classwhite href/tupian/26783.html target_blank大白菜/a3.7 获取信息 ​ 元素筛选成功后我们需要获取元素的一定信息如文本信息、属性信息等等。 获取文本信息 xxx.string用来获取目标路径下第一个非标签字符串得到的是个字符串xxx.stings:用来获取目标路径下所有的子孙非标签字符串返回的是个生成器xxx.stripped_strings用来获取目标路径下所有的子孙非标签字符串会自动去掉空白字符串返回的是一个生成器xxx.get_text()用来获取目标路径下的子孙字符串返回的是字符串包含HTML的格式内容​ 示例 from bs4 import BeautifulSoup text ul classclearfixlia classhello href/tupian/26783.html target_blank你好/aa classwhite href/tupian/26783.html target_blank白菜,你好我是黑菜/aa classwhite href/tupian/26783.html target_blank白菜你好你好/aa classwhite href/tupian/26783.html target_blank我是一个小白菜/aa classwhite href/tupian/26783.html target_blank大白菜/aa classblack href/tupian/26783.html target_blank黑彩/a/li /ulsoup BeautifulSoup(text,lxml) # 需要安装lxml库哦 # 筛选出白菜 tag soup.find(li) print(tag.string) print(list(tag.strings)) print(list(tag.stripped_strings)) print(tag.get_text()) ​ 结果如下 None [\n, 你好, \n, 白菜,你好我是黑菜, \n, 白菜你好你好, \n, 我是一个小白菜, \n, 大白菜, \n, 黑彩, \n] [你好, 白菜,你好我是黑菜, 白菜你好你好, 我是一个小白菜, 大白菜, 黑彩]你好 白菜,你好我是黑菜 白菜你好你好 我是一个小白菜 大白菜 黑彩获取属性信息 xxx.attrs[属性名字]xxx[属性名字]​ 示例 from bs4 import BeautifulSoup text ul classclearfixlia classhello href/tupian/26783.html target_blank你好/aa classwhite href/tupian/26783.html target_blank白菜,你好我是黑菜/aa classwhite href/tupian/26783.html target_blank白菜你好你好/aa classwhite href/tupian/26783.html target_blank我是一个小白菜/aa classwhite href/tupian/26783.html target_blank大白菜/aa classblack href/tupian/26783.html target_blank黑彩/a/li /ulsoup BeautifulSoup(text,lxml) # 需要安装lxml库哦 # 筛选出白菜 tag_list soup.find_all(a) tag_attr_list_one [tag.attrs[class] for tag in tag_list] tag_attr_list_two [tag[class] for tag in tag_list] print(tag_attr_list_one) print(-*50) print(tag_attr_list_two)​ 结果 [[hello], [white], [white], [white], [white], [black]] -------------------------------------------------- [[hello], [white], [white], [white], [white], [black]]4. 总结 ​ 本篇讲解了第二个解析库bs4当然其实大家不需要了解那么多的解析库会一两个即可因此本系列也只讲解lxml、bs4这两个用到最多的解析库其他的比如pyquery、re都可以自己去学习。 ​ 下一篇会将之前的小说实战重新采用bs4来解析。
http://www.zqtcl.cn/news/774527/

相关文章:

  • thinkphp网站开发技术做电脑租赁网站
  • 网站设计评语中午版wordpress
  • 邢台企业手机网站建设汕头网站制作后缀
  • 微网站后台内容设置做网站语言排名2018
  • 嘉兴网站制作网站建设外贸营销推广平台有哪些
  • 网站开发集广州高端网站定制开发价格
  • 网站开发培训成都网站建设 报价单 doc
  • 苏州哪里有做淘宝网站的WordPress模板博客主题
  • 网站做中转做任务 网站
  • 深圳住房建设局网站网站的建设教程
  • 6免费建站的网站在线建筑设计
  • 哪些网站做任务可以赚钱的建设厅网站如何查询企业信息
  • 深圳网站设计+建设首选深圳市服装网站建设需求分析报告
  • 肥城网站制作浙江省建设厅信息港官网
  • 手机网站建设进度南宁企业网站设计
  • 建设学校网站方案大淘客网站上的推广怎么做
  • 哪个网站可以免费学设计南阳网站建设页面
  • 外贸公司建网站一般多少钱南京网站建设小程
  • 洛阳霞光做网站公司手机编程教学
  • 深圳正规网站建设公司顺德网页制作公司
  • 消防中队网站建设筑云电商网站建设公司
  • 天津网站建设天津中国东盟建设集团有限公司网站
  • 正版传奇手游官方网站宁波建设银行网站首页
  • 中铁建设集团招标网站wordpress区块编辑无法使用
  • 做电影网站需要的服务器配置网站关键词排名优化应该怎么做
  • 企业网站管理关键词你们懂的
  • 成都成华网站建设跟网站开发公司签合同主要要点
  • 手机搭建平台网站化工厂建设网站
  • 怎样建设自己网站的后台龙港哪里有做百度网站的
  • 西安做网站建设哪家好2345网址导航电脑版下载