html解析のBeautifulSoup

引子:

使用python爬虫对爬取网页进行解析的时候,如果使用正则表达式,有很多局限,比如标签中出现换行,或者标签的格式不规范,都有可能出现取不到数据,BeautifulSoup作为一个专门处理html格式的python第三方库,在格式处理上要明显优与正则表达式,而且使用简便。

安装:

下载beautifulsoup4-4.5.0,打开cmd,进入beautifulsoup文件目录,执行python setup.py install 进行安装

打开python命令行,执行from bs4 import BeautifulSoup 成功,则安装成功

使用:

获取指定标签及内容

soup=BeautifulSoup(text,"html.parser")  #text为html文本,"html.parser"指按html格式进行解析

li= soup.find_all(name="li",attrs={"class":"rlbh"}) #查找所有li标签,class类型为rlbh

find只返回第一个标签,find_all返回所有标签,findAll是beautifulsoup3 的方法,在bs4中也可以用,find_all是bs4中的方法。

find_all返回结果为list类型,如果需要在返回结果中继续匹配可以这样:

li= soup.find_all(name="li",attrs={"class":"rlbh"})
for i in li:
  #get count
  lbdj=i.find_all(name="span",attrs={"class":"lbdj"})  #匹配li结果中的所有span标签,且class类型为lbdj

获取链接

a=span[0].find_all(name="a",attrs={"target":"_blank"})  #获取a标签
href=a[0].get('href')  #获取a标签中href属性的内容
也可以直接a[0]['href'] 获取

获取内容

title=a[0].getText()  #获取a标签中的文本

如:<a href="http:127.0.0.1">localhost</a>获取到的就是localhost

  

转载于:https://www.cnblogs.com/taurusfy/p/6867281.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Tensorflow】人脸128个关键点识别基于卷积神经网络实现

引言&#xff1a; 卷积神经网络 卷积神经网络最早是为了解决图像识别的问题,现在也用在时间序列数据和文本数据处理当中,卷积神经网络对于数据特征的提取不用额外进行,在对网络的训练的过程当中,网络会自动提取主要的特征.卷积神经网络直接用原始图像的全部像素作为输入,但是内…

python 爬虫 包_python爬虫学习之路-抓包分析

利用浏览器抓包&#xff0c;是爬虫中的很实用的技能。在爬虫编程之前&#xff0c;我们要对抓取的目标页面有所了解&#xff0c;比如浏览器的这个请求这个页面中间都经历了什么&#xff0c;数据是怎么发送和返回的。 抓包的作用 我把抓包分析的作用简单列一下&#xff1a; 分析请…

帧间EC原理和过程

出错的宏块&#xff08;图中灰色表示&#xff09;根据上、下、左、右四个方向相邻宏块的不同分割情况及预测类型进行插值。将最后的结果中进行比较&#xff0c;选取边界像素差值之和最小者为最优的EC方案。其步骤为&#xff1a; 1、判断相邻宏块左上角8*8块的预测模式是否大于R…

Maven依赖的是本地工程还是仓库jar包?

相信大家都碰见过maven配置的依赖或者是jar包或者是工程&#xff0c;在开发的过程当中&#xff0c;我们当然需要引入的是工程&#xff0c;这样查看maven依赖的文件的时候&#xff0c;就能直接查看到源码。 一、本地工程依赖 举个例子&#xff0c;其架构如下所示&#xff08;以下…

关于django新版本无法使用MySQL数据库的问题

关于django新版本无法使用MySQL数据库的问题 参考这里 稍微记录下Django2.2使用MariaDB和MySQL遇到的坑 现在演示一下整个流程吧 1.创建项目和应用 PS&#xff1a;你也可以使用PyCharm直接创建项目 2.注册应用 先把刚刚创建的应用添加进去 3.配置MySQL或者MariaDB 4.PyMySQL替…

[转]Spring事务tx:annotation-driven/

在使用SpringMVC的时候&#xff0c;配置文件中我们经常看到 annotation-driven 这样的注解&#xff0c;其含义就是支持注解&#xff0c;一般根据前缀 tx、mvc 等也能很直白的理解出来分别的作用。<tx:annotation-driven/> 就是支持事务注解的&#xff08;Transactional&a…

【自动化测试】整理各种测试开发工具!持续更新

收集和整理各种测试工具&#xff0c;自动化测试工具&#xff0c;自动化测试框架&#xff0c;觉得有帮助记得三连一下。欢迎提交各类测试工具到本博客。 通用测试框架 JUnit: 最著名的xUnit类的单元测试框架&#xff0c;但是不仅仅可以做单元测试。TestNG: 更强大的Java测试框架…

python连接sql数据库_python连接sql server数据库实现增删改查

简述 python连接微软的sql server数据库用的第三方模块叫做pymssql&#xff08;document&#xff1a;http://www.pymssql.org/en/stable/index.html&#xff09;。在官方文档可以看到&#xff0c;pymssql是基于_mssql模块做的封装&#xff0c;是为了遵守python的DBAPI规范接口.…

es5.0 安装head插件

es5.0的安装和之前的版本有些区别,我的电脑用plugin install 没成功, 查了一下资料,说是可以用grunt进行安装,启动; 1,先安装grunt: grunt是一个很方便的构建工具&#xff0c;可以进行打包压缩、测试、执行等等的工作&#xff0c;5.0里的head插件就是通过grunt启动的。 npm ins…

Django后台项目之用户管理功能开发流程

项目功能开发流程 1 先写列表页&#xff08;加载出来数据就行&#xff09; ob User_vip.objects.filter(is_del004001).order_by(-cts)2 写添加功能 2.1 创建addOrDoadd视图方法 2.2 添加访问addOrDoadd的路由 2.3 在index.html页面吧添加的按钮的链接不全 <a style&…

套接字 资料查阅

(3)套接字(socket) 一个完整的网络应用程序包括客户端和服务器两个部分。网间通信进程需要由两个进程组成&#xff0c;并且只能用同一种协议。也就是说&#xff0c;不能在通信的一端使用TCP协议&#xff0c;而另一端则用UDP协议。一个完整的网络通信需要一个五元组来标识…

linux mysql安装_Linux下安装mysql服务(超详细)

Mysql数据库的安装对于开发者来说&#xff0c;是我们必然会面对的问题&#xff0c;它的安装过程其实并不复杂&#xff0c;并且网络上的安装教程也非常多&#xff0c;但是对于新手来说&#xff0c;各种不同形式的安装教程&#xff0c;又给新手们带来了要选择哪种方式进行安装的难…

dash 和 bash 切换

#先看看是用的哪个 shellls -al /bin/sh #如果是dash&#xff0c;切换到bashsudo ln -fs /bin/bash /bin/sh转载于:https://www.cnblogs.com/abolide/p/6874265.html

Django中使用ajax技术概述

ajax 1.什么是ajax ajax就是在不刷新整个页面的情况下&#xff0c;去更新局部页面的内容&#xff08;无刷新技术&#xff09; 2.ajax有什么优点 最大的一点是页面无刷新&#xff0c;在页面内与服务器通信&#xff0c;给用户的体验非常好。 使用异步方式与服务器通信&#x…

IE、FF脚本兼容性问题

1.window.event IE有这个对象&#xff1b;FF没有&#xff0c;FF通过参数传递 2.获取事件源 IE&#xff1a;srcElement FF&#xff1a;target 3.添加与去除事件 IE&#xff1a;element.attachEvent("onclick", function(){}) element.detachEvent("onclick"…

ARM MOV和 LDR指令关系

ARM是RISC结构&#xff0c;数据从内存到CPU之间的移动只能通过L/S指令来完成&#xff0c;也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中&#xff0c;只能使用ldr比如&#xff1a;ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活…

day2 操作系统

一.为何要有操作系统 程序员无法把所有的硬件操作细节都了解到&#xff0c;管理这些硬件并且加以优化使用是非常繁琐的工作&#xff0c;这个繁琐的工作就是操作系统来干的&#xff0c;有了他&#xff0c;程序员就从这些繁琐的工作中解脱了出来&#xff0c;只需要考虑自己的应用…

Django之model模型

模型 1.如何安装pymysql 1.file->settings->Project Interpreter 2.点击右边的"" 3.搜索pymysql 4.点击最下面的"install package" 5.安装成功会提示"Package "pymysql" install successfully"2.如何在django中配置mysql 1.在…

python安装不了jupyter_python学习笔记——Windowns下Python3之安装jupyter

Windowns下Python3之安装jupyter Jupyter notebook&#xff1a; 一个交互式笔记本&#xff0c;支持运行40多种编程语言。 利用它来写Python&#xff0c;代码和运行结果都可以保存下载&#xff0c;十分方便。本文主要以自身的安装过程为例&#xff0c;结合遇到的问题&#xff0c…

Java文件读写操作

http://blog.csdn.net/jiangxinyu/article/details/7885518/ 比较齐全&#xff0c;有多种文件读写操作转载于:https://www.cnblogs.com/maowuyu-xb/p/7238170.html