Python爬虫常用模块,BeautifulSoup笔记
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import urllib import urllib.request as request import re from bs4 import * #url = 'http://zh.house.qq.com/' url = 'http://www.0756fang.com/' html = request.urlopen(url).read().decode( 'utf-8' ) soup = BeautifulSoup(html, "html.parser" ) print (soup.head.meta[ 'content' ]) #输出所得标签的‘’属性值 print (soup.span.string); print (soup.span.text) #两个效果一样,返回标签的text #name属性是‘’的标签的<ResultSet>类,是一个由<Tag>组成的list print (soup.find_all(attrs = { 'name' : 'keywords' })) print (soup.find_all( class_ = 'site_name' )) #class属性是‘’的<Tag>的list,即<ResultSet> print (soup.find_all( class_ = 'site_name' )[ 0 ]) #这是一个<Tag> print (soup.find(attrs = { 'name' : 'keywords' })) #name属性是‘’的标签的<Tag>类 print (soup.find( 'meta' ,attrs = { 'name' : 'keywords' })) #name属性是‘’的meta标签的<Tag>类 print (soup.find( 'meta' ,attrs = { 'name' : 'keywords' })[ 'content' ]) #<Tag类>可直接查属性值 #配合re模块使用,可以忽略大小写 #如下面例子,可以找到name属性为keywords,KEYWORDS,KeyWORds等的meta标签 print (soup.find( 'meta' ,attrs = { 'name' :re. compile ( 'keywords' ,re.IGNORECASE)})) '''-------------------------------------------------------------------------''' '''----------------------------修改BeautifulSoup—----------------------------''' '''-------------------------------------------------------------------------''' soup.find(attrs = { 'name' : 'keywords' }).extract #调用这个方法,可以删除这一个标签 soup.title.name = 'ppp' #可以把Tag的名字<title>改成<ppp> #可以使用append(),insert(),insert_after()或者insert_before()等方法来对新标签进行插入。 Tag1 = a.new_tag( 'li' , class_ = '123' ) '''创造一个Tag''' a.title.append(Tag1) #把Tag1添加为name是title的Tag的最后一个【子节点】,没有换行 #.insert(0,Tag1)----这里用insert的话,第一个参数可以控制所添加【子节点】的先后位置 #.insert_after(Tag1)---和insert_before一样,添加为Title的【兄弟节点】 soup.head.meta[ 'content' ] = '随便输入,可以添加(或更改)这个Tag的content属性(值)' del soup.head.meta[ 'content' ] #这个语法可以直接删除这个Tag的content属性 soup.li.clear #调用方法会清除所有li标签的text soup.title.string = '用这个方法可以修改title标签的内容' #慎用,只用于最子孙最小的节点,用于父节点会清空子节点 soup.div.append( '放在div子节点位置的 最后append最后,是标签内容' ) soup.div.insert( 0 , '放在div子节点位置的 最前insert【0】最前,是标签内容' ') |
这是我以前的BS4笔记,交流请联系 QQ 328123440
分类:
Python - 爬虫
· .NET 9中的异常处理性能提升分析:为什么过去慢,未来快
· 字符集、编码的前世今生
· Web性能优化:从 2 秒到200毫秒
· WPF 使用GDI+提取图片主色调并生成Mica材质特效背景
· golang遍历处理map时的常见性能陷阱
· 1 分钟生成架构图?程序员 AI 绘图保姆级教程
· 字符集、编码的前世今生
· 一种更简单的方式运行 C# 代码,简化 C# 开发体验!
· 最快的流媒体服务器搭建 smart_rtmpd
· 高并发下如何防止商品超卖?