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

怎么使用腾讯云做网站嘉兴网站推广优化公司

怎么使用腾讯云做网站,嘉兴网站推广优化公司,网站页面大小优化怎么做,做网站的重点目标前面一直在讲 Requests 模块如何使用#xff0c;那都是在请求阶段要做的事情#xff0c;相信很多网友都在等一个能够开始爬网站信息的教程#xff0c;今天它来了#xff0c;今天我要给大家讲一个很简单易懂的库#xff1a;BeautifulSoup4。 一、概述安装 Beautiful…前面一直在讲 Requests 模块如何使用那都是在请求阶段要做的事情相信很多网友都在等一个能够开始爬网站信息的教程今天它来了今天我要给大家讲一个很简单易懂的库BeautifulSoup4。 一、概述安装 BeautifulSoup4 属于 BeautifulSoup 系列的第四代版本BeautifulSoup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库这个库能够实现树文档的导航、查找从而帮助我们提取到网页中所需要的数据。 与 Requests 一样BeautifulSoup4 也是一个三方库要使用这个库同样的使用 pip 命令安装pip3 install BeautifulSoup4。如果忘记了在哪里安装请回看 Requests 模块第一篇文章。 安装好以后我们围绕数据提取这个话题对 BeautifulSoup4 进行剖析。 二、如何使用 想要使用好 BeautifulSoup4 库以下简称 bs4 库不是一件易事还需要懂 HTML 和 CSS 的知识不过大家既然已经学到这里了无论你是否具备这些知识我都用通俗易懂的语言为大家讲解清楚保证大家在学完这篇文章以后能够顺利的爬取一部分网站。 爬虫中开始使用 bs4 库时表明一定获取到了网页源代码前面已经讲过 Requests 模块获取网页源代码不再赘述我们只需要在此基础上借助 bs4 库处理即可。 bs4 库解析器的选择与使用 1 假设我们已经得到了某网页的源代码字符串类型如下所示 html_str htmlheadtitleThe Dormouses story/title/head body p classtitlebThe Dormouses story/b/p p classstory idstoryOnce upon a time there were three little sisters; and their names were a hrefhttp://example.com/elsie classsister idlink1Elsie/a, a hrefhttp://example.com/lacie classsister idlink2Lacie/a and a hrefhttp://example.com/tillie classsister idlink3TilliepTest/p/a; and they lived at the bottom of a well./pp classstory idstory.../p2针对网页源代码我们需要使用 bs4 库中的 BeautifulSoup 方法进行文档解析这个文档解析过程需要使用解析器 bs4 库已经提供三种解析器可选让我们择优选取详情见下表 解析器用法优点缺点Python 标准库BeautifulSoup(源代码, ‘html.parser’)解析速度适中、容错性好不如 lxml 速度快、不如 html5lib 容错性好lxml HTML 解析器BeautifulSoup(源代码, ‘lxml’)解析速度最快、容错性好需要单独安装 lxml 库lxml XML 解析器BeautifulSoup(源代码, ‘xml’)解析速度最快、容错性好需要单独安装 lxml 库html5libBeautifulSoup(源代码, ‘html5lib’)容错性最好解析速度最慢 上表所示经过对比我们优先选择 lxml 解析器但本文以讲基础为主我们退而求其次选择 Python 标准库的用法目前几乎不会再有 html5lib 解析器的应用大家稍微了解即可。 3我们已然选择了恰当的解析器那么 bs4 库的使用应当如何体现在代码中呢这个库安装时要记住用全称 BeautifulSoup4使用时要简写为 bs4。导包连同使用解析器解析上方网页源代码的代码一起为大家呈现 from bs4 import BeautifulSoupsoup BeautifulSoup(html_str, html.parser)树结构的讲解 如果有刨根问底的同学此时可能会注意到变量 soup 打印出来的结果与上方网页源代码无异这是为什么呢 bs4 库对网页源代码的解析其实是将网页源代码转换了一种结构这种结构我们称之为树结构更有利于我们后续信息的导航与采集下图展示了树结构的大致构造。 这里我们对树结构做一下解读 1整体看树结构是一个由外到内层层递进的一种结构最外层是根节点 html 标签网页源代码的所有标签都属于它其次再划分为两层分别是 head 标签和 body 标签它们两个标签中 body 负责网页内容显示head 负责网页的相关配置再往下层更加详细的就是按照 HTML 语言的语法规则交由我们程序员负责如何配置以及显示何种内容。这大概就是一个完整的树结构同时这也是 HTML 语言规定的大致结构 2分层看这个树结构是由一个个 HTML 标签组成的类似的像div/div、p/p一样成对存在的双标签以及img、br一样的单标签在网页源代码中看到这样形式的都可以理解为是 HTML 标签。但是通常情况下 HTML 标签内还包含很多属性、标签、内容像div idboxh1电影观后感/h1/div、a hrefhttps://www.baidu.com百度一下/a等这些按照规则定制出来的内容便组成了网页。 我们的爬虫便是按照这些层次结构进行数据的采集。大家简单了解上述内容以后希望能够再去菜鸟教程等网站学习一下和 HTML 相关的内容让自己对树结构以及网页的结构有更深入的理解。 CSS 选择器的使用数据的采集 接下来我们以最开始给大家的那一段网页源代码结合六种 CSS 选择器以及 bs4 库提供的两个方法、两个属性开始信息的提取。 1select 方法使用 CSS 选择器标签选择器、class 选择器、id 选择器、父子选择器、后代选择器、nth-child 选择器从指定位置处找出所有符合的标签存放入列表中。 2select_one 方法使用 CSS 选择器标签选择器、class 选择器、id 选择器、父子选择器、后代选择器、nth-child 选择器从指定位置处找出第一个符合的标签。 3text 属性从标签中获取标签内容。 4attrs 属性从标签中获取指定属性名对应的属性值。 我们用以下几个问题来学习相关内容。 问题一使用标签选择器获取源代码中所有的 p 标签。 标签选择器默认代表源代码中所有的某标签。 p_list_1 soup.select(p) print(p_list_1)问题二使用父子选择器获取 body 标签下所有的 p 子标签。 父子选择器使用连接具有父子关系的标签父标签在左子标签在右。 如何判断两个标签是否是父子关系呢举个例子bodyp classtitlebThe Dormouses story/b/ppTest/p/body这里的标签 body 与标签 p 为父子关系标签 p 与标签 b 为父子关系标签 body 与标签 b 为后代关系两个标签 p 为兄弟关系。 p_list_2 soup.select(body p) print(p_list_2)问题三使用后代选择器获取 body 标签下的所有 a 标签。 后代选择器使用空格连接具有后代关系的标签祖先标签在左后代标签在右。 a_list soup.select(body a) print(a_list)问题四分别使用 class 选择器和 nth-child 选择器获取 body 标签下的第一个 p 子标签。 class 选择器如果标签内有 class 属性只需要用点来调用 class 属性对应的属性值即可。例如p classone/p此时就是.one。 nth-child 选择器通过同级标签中的排名数来选择标签。网页源代码中 body 标签下所有子标签中排名第一的位置是我们需要的标签所以写为 p:nth-child(1)。 p_1 soup.select_one(body p.title) print(p_1)p_2 soup.select_one(body p:nth-child(1)) print(p_2)问题五通过 id 选择器获取 body 标签下的后两个 p 子标签。 id 选择器如果标签内有 id 属性只需要用井号来调用 id 属性对应的属性值即可。例如p idone/p此时就是#one。 p_list_3 soup.select(body p#story) print(p_list_3)问题六选择器综合使用获取 body 标签下的第二个 p 子标签的第三个 a 子标签的标签内容和 href 属性值。 text 属性能够获取到标签内的内容。例如p张三/p此处的张三便是标签内的内容。 attrs 属性能够根据属性名获取到对应的属性值。例如a hrefhttps://www.baidu.com百度一下此处的 href 是属性名https://www.baidu.com 是 href 对应的属性值。 text_str soup.select_one(body p:nth-of-type(2) a#link3).text href_str soup.select_one(body p:nth-of-type(2) a#link3).attrs[href] print(text_str) print(href_str)三、完整代码总结 html_str htmlheadtitleThe Dormouses story/title/head body p classtitlebThe Dormouses story/b/p p classstory idstoryOnce upon a time there were three little sisters; and their names were a hrefhttp://example.com/elsie classsister idlink1Elsie/a, a hrefhttp://example.com/lacie classsister idlink2Lacie/a and a hrefhttp://example.com/tillie classsister idlink3TilliepTest/p/a; and they lived at the bottom of a well./pp classstory idstory.../pfrom bs4 import BeautifulSoupsoup BeautifulSoup(html_str, html.parser)# 问题一使用标签选择器获取源代码中所有的 p 标签。 p_list_1 soup.select(p) print(p_list_1)# 问题二使用父子选择器获取 body 标签下所有的 p 子标签。 p_list_2 soup.select(body p) print(p_list_2)# 问题三使用后代选择器获取 body 标签下的所有 a 标签。 a_list soup.select(body a) print(a_list)# 问题四分别使用 class 选择器和 nth-child 选择器获取 body 标签下的第一个 p 子标签。 p_1 soup.select_one(body p.title) print(p_1)p_2 soup.select_one(body p:nth-child(1)) print(p_2)# 问题五通过 id 选择器获取 body 标签下的后两个 p 子标签。 p_list_3 soup.select(body p#story) print(p_list_3)# 问题六选择器综合使用获取 body 标签下的第二个 p 子标签的第三个 a 子标签的标签内容和 href 属性值。 text_str soup.select_one(body p:nth-of-type(2) a#link3).text href_str soup.select_one(body p:nth-of-type(2) a#link3).attrs[href] print(text_str) print(href_str)上述六个问题涉及到的 CSS 选择器的使用需要大家仔细琢磨这六个问题涉及的答案不唯一但是比较具有综合性我们讲述的这六种 CSS 选择器可以结合使用如果能把这六种 CSS 选择器学会爬取数据对大家来说轻而易举。 可能有小伙伴学习过 bs4 库的使用可能会疑惑我怎么没接触过 select、select_one 这些呢大家不要担心bs4 库提供了很多类似于 select、select_one 的方法比如 find_all、find 方法这些方法大同小异你只要掌握上述文章中涉及的知识点bs4 库的使用就没问题。 以上就是 bs4 库要掌握的内容下篇文章我们将带大家进行网页爬虫的实战训练。
http://www.zqtcl.cn/news/858511/

相关文章:

  • 平阳高端网站建设广州凡科公司是外包吗
  • 购物网站项目经验公司的八个主要部门
  • 绿色大气网站模板株洲58同城网站建设电话
  • 网站建设 总体思路福州建设高端网站
  • 做网站需要什么配置北京工信部网站备案查询
  • 奇信建设集团官方网站专题网站建站
  • 站点推广策略包括黄山旅游必去十大景点
  • 佛山龙江做网站的信宜做网站
  • 推广自己的网站需要怎么做wordpress 正计时
  • 做网站工资怎么样织梦的官方网站
  • python制作视频网站开发互动网站建设公司
  • 网站软文代写广西网站设计公司排行榜
  • c2c网站代表和网址mirages WordPress
  • 网站建设开发案例教程wordpress中国区官方论坛
  • 王晴儿网站建设做啊录音网站
  • 网站开发版本号正规的企业网站建设公司
  • 中国做网站正邦温州网站建设方案服务
  • 南通网站关键词优化wordpress做小程序
  • 上海企业网站seo多少钱做网站图片链接到天猫
  • 属于教育主管部门建设的专题资源网站是广西壮锦网站建设策划书
  • 云南网站制作一条龙网站建设公司对比分析报告
  • 手机网站客户端网站语言有几种
  • 做网站怎么选取关键词中企动力销售陪酒多吗
  • 新网站做内链雅虎网站收录提交入口
  • 简述建设一个网站的具体过程接做名片的网站
  • 怎样建立自己网站网站产品数据如何恢复
  • 用wordpress建立电商网站用Off做网站
  • 网站建设公司不赚钱ui设计软件培训学校
  • 网站项目策划书模板wordpress修改模版
  • 房地产手机网站模板电脑建立网站