python - BeautifulSoup 简单使用
2019-08-22 本文已影响0人
精神病患者link常
# -*- coding: UTF-8 -*-
import urllib2, re, urllib, socket
from bs4 import BeautifulSoup
def SoupHtml(html):
soup = BeautifulSoup(html, "html.parser")
html = '''
<li>
<h5>
<a href="/html/132663.htm" title="2019七夕早安图片大全 七夕情人节鲜花花束图片" target="_blank">2019七夕早安图片大全 七夕情人节鲜花花束图片</a>
</h5>
<div class="cover">
<a href="/html/132663.htm" title="2019七夕早安图片大全 七夕情人节鲜花花束图片" target="_blank">
<img src='//pic.feizl.com/upload/allimg/190808/gxtxfcgtvdxvmpo.jpg' border='0' width='160' height='110'>
</a>
</div>
<a id="love" class="like" href="javascript:" onClick="javascript:postDigg('good',132663)">
</a>
<div class="date" id="test">发布时间:2019-08-08</div>
</li>
'''
SoupHtml(html)
find 查询一个标签
-
根据
class
找出标签内的内容
print soup.find(class_="cover") # class 是关键字 所有使用class_
或者
print soup.find(attrs={'class': 'cover'})
-
根据
id
找出标签内的内容
print soup.find(id="test")
或者
print soup.find(attrs={'id': 'test'})
-
获取标签的属性
print soup.find(class_="like").get("id")
print soup.find('a', id="love").get("href")
-
获取标签里面的内容
print soup.find('div', id="test").get_text()
-
获取标签所有的属性
print soup.find('a', id="love").attrs
-
获取标签的子节点
print soup.find(class_="cover").children # listiterator object at 0x10da27890> 需通过遍历得到
for i in soup.find(class_="cover").children:
print(i) # 标签
-
判断标签是否存在
title
属性
print soup.find(id="love").has_attr("title")
find_all 查询多个标签
-
获取所有
class
包含da
的标签:正则
print soup.find_all('div', class_=re.compile("da"))
-
获取所有
div
标签
print soup.find_all('div')
-
获取
id="test"
的所有的div
标签
print soup.find_all('div', id="test")
-
获取多个标签
print soup.find_all(['a', 'div'])
-
获取属性
id=love
的所有标签
print soup.find_all(id="love")
-
获取属性
id=love
id=test
的所有标签
print soup.find_all(id=["love", "test"])
select 查询多个标签
-
得到所有的
a
标签
print soup.select('a')
-
得到
class=like
的所有标签
print soup.select('.like')
-
得到
id=test
的所有标签
print soup.select('#test')
-
得到
a
标签中id=test
的所有标签
print soup.select('a #test')