html 网页源码解析:bs4中BeautifulSoup

from bs4 import BeautifulSoup

result=requests.request("get","http://www.baidu.com")
result.encoding="utf-8" 
print(result.text)         #获取源码
soup=BeautifulSoup(result.text,"html.parser")      #解析html对象,并赋值给soup

soup.title        #获取网页第一个标签为“title”内容
soup.title.string)     #获取第一个标签“title”的纯字符串内容
soup.prettify()      #获取html网页源码
soup.input["name"]    #获取网页第一个标签为“input”内name的属性
soup.input.name      #获取标签为input的名字,其实就是“input”
soup.input.attrs       #取网页第一个标签为“input”内所有属性
soup.input["name"]="test"      #修改标签内的属性
del soup.input["name"]         #删除标签内的属性
soup.input["name2"]="wq123"     #新增标签内的属性
soup.head.contents      #获取标签为head的内容
list(soup.head.children)      #获取标签为head的内容,与上面一致
list(soup.head.descendants)      #获取标签为head的内容(前面与上面一致,加上-1位号为title内容)
soup.head.parent       #获取标签为head父节点所有内容
soup.head.parent.parent     #获取标签为head父节点的父节点所有内容
soup.head.next_sibling       #获取标签head同级下一个兄弟节点
soup.head.previous_sibling      #获取标签head同级上一个兄弟节点
list(soup.head.next_siblings)      #获取标签head同级下一个兄弟节点存储为生成器
list(soup.head.previous_siblings)      #获取标签head同级上一个兄弟节点存储为生成器
soup.find_all("a",class_="js_a_so")        #获取标签为a,class属性为"js_a_so"的所有标签对象  

原文地址:https://www.cnblogs.com/whitemouseV2-0/p/11288968.html

时间: 2024-10-09 14:19:29

html 网页源码解析:bs4中BeautifulSoup的相关文章

源码解析Android中View的layout布局过程

Android中的Veiw从内存中到呈现在UI界面上需要依次经历三个阶段:量算 -> 布局 -> 绘图,关于View的量算.布局.绘图的总体机制可参见博文 < Android中View的布局及绘图机制>.量算是布局的基础,如果想了解量算的细节,可参见博文<源码解析Android中View的measure量算过程>.本文将从源码角度解析View的布局layout过程,本文会详细介绍View布局过程中的关键方法,并对源码加上了注释以进行说明. 对View进行布局的目的是计算

源码解析Android中View的measure量算过程

Android中的Veiw从内存中到呈现在UI界面上需要依次经历三个阶段:量算 -> 布局 -> 绘图,关于View的量算.布局.绘图的总体机制可参见博文< Android中View的布局及绘图机制>.量算是布局和绘图的基础,所以量算是很重要的一个环节.本文将从源码角度解析View的量算过程,这其中会涉及某些关键类以及关键方法. 对View进行量算的目的是让View的父控件知道View想要多大的尺寸. 量算过程概述 如果要进行量算的View是ViewGroup类型,那么ViewGr

spring boot 源码解析52-actuate中MVCEndPoint解析

今天有个bie项目的jolokia的endpoint不能访问,调试源码发现:endpoint.enabled的开关导致的. 前言之前的几篇文章分析了spring boot 中有关endpoint的实现,细心的朋友可以发现,在org.springframework.boot.actuate.endpoint.mvc 包下也有一系列的xxxEndpoint,这又是为什么呢? 原因是: 我们很多情况下,都是访问接口的方式获取应用的监控,之前的分析是其实现的底层,要想实现通过接口访问,还需要对其进行包装

深入源码解析Android中Loader、AsyncTaskLoader、CursorLoader、LoaderManager

如果对Loader.AsyncTaskLoader.CursorLoader.LoaderManager等概念不明白或不知道如何使用Loader机制,可参见博文Android中Loader及LoaderManager的使用(附源码下载).本文主要通过研究Loader及其子类的生命周期的方式来对Loader及其子类.LoaderManager的源码进行研究. Loader是靠LoaderManager管理的,LoaderManager可以同时管理多个Loader,即LoaderManager与Lo

深入源码解析Android中的Handler,Message,MessageQueue,Looper

本文主要是对Handler和消息循环的实现原理进行源码分析,如果不熟悉Handler可以参见博文< Android中Handler的使用>,里面对Android为何以引入Handler机制以及如何使用Handler做了讲解. 概括来说,Handler是Android中引入的一种让开发者参与处理线程中消息循环的机制.我们在使用Handler的时候与Message打交道最多,Message是Hanlder机制向开发人员暴露出来的相关类,可以通过Message类完成大部分操作Handler的功能.但

org.apache.felix.framework-5.6.12源码解析——*framework中dto,hook,launch,namespace,startlevel部分

DTO 在Felix中使用了DTO模式,在传统的编程中,我们一般都是前台请求数据,发送到Webservice,然后WebService向数据库发出请求,获取数据,然后一层层返回:模型如下: 这种比较原始的请求方式带来的缺点有很多,多次请求耗费一定的网络资源,减慢效率.如果一次性返回整个实体类,还可能造成数据库表结构的泄漏. DTO模型: 这样带来的好处有: 1.依据现有的类代码,即可方便的构造出DTO对象,而无需重新进行分析. 2.减少请求次数,大大提高效率. 3.按需组织DTO对象,避免传输整

Android 【山西违章查询实现2】(解析网页源码然后ListView显示出来)--- 客户端获取html源码

废话不多说,直接上源码 最后网页源码在result中. public void btn(View view) { new myWorker().execute("这里是网址"); } //异步操作,防止UI线程阻塞. private class myWorker extends AsyncTask<String,Void,String> { protected String doInBackground(String...urls) { StringBuilder buil

给jdk写注释系列之jdk1.6容器(2)-LinkedList源码解析

LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明. 1.链表的概念 链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和双向链表,而单向/双向链表又可以分为循环链表和非循环链表,下面简单就这四种链表进行图解说明.           1.1.单向链表 单向链表就是通过每个结点的指针指向下一个结点从而链接起来的结构,最后一个节点的next指向null.      1. 2.单向循环链表           单向循环

Android培训HandlerThread的使用及源码解析

Android培训HandlerThread的使用及源码解析-北京尚学堂 关于Hanlder的基本使用可以参见博文<Android中Handler的使用>,如果想了解Handler.Looper.Thread等的相互关系以及内部实现原理可以参见博文<深入源码解析Android中的Handler,Message,MessageQueue,Looper>. Android中的API中对HandlerThread的描述是: Handy class for starting a new t