[英]Beautiful Soup data extract
有一個 local.html 我從中提取點數據,用 BeautifulSoup 解析但我不知道如何提取div
內的日期,解析數組如下:
<div class="_a6-p"><div><div><a href="https://www.instagram.com/chuckbasspics" target="_blank">chuckbasspics</a></div><div>Jan 7, 2013, 5:41 AM</div></div></div><div class="_3-94 _a6-o"></div></div><div class="pam _3-95 _2ph- _a6-g uiBoxWhite noborder"><div class="_a6-p"><div><div>
知道怎么做嗎?
我已經使用以下代碼提取了用戶和 url (href):
fl_html = open('followers.html', "r")
index = fl_html.read()
soup = BeautifulSoup(index, 'lxml')
usernames = soup.find_all('a', href=True)
for i in usernames:
users.append(i.get_text(strip=True))
url_follower.append(i['href'])
您可以使用bs4
API 或 CSS 選擇器:
from bs4 import BeautifulSoup
html_doc = """<div class="_a6-p"><div><div><a href="https://www.instagram.com/chuckbasspics" target="_blank">chuckbasspics</a></div><div>Jan 7, 2013, 5:41 AM</div></div></div><div class="_3-94 _a6-o"></div></div><div class="pam _3-95 _2ph- _a6-g uiBoxWhite noborder"><div class="_a6-p"><div><div>"""
soup = BeautifulSoup(html_doc, "html.parser")
.get_text()
和separator=
提取日期您可以使用自定義分隔符從 HTML 片段中獲取所有文本,然后是.split
:
t = soup.get_text(strip=True, separator="|").split("|")
print(t[1])
印刷:
Jan 7, 2013, 5:41 AM
查找<div>
的下一個包含<a>
的兄弟:
t = soup.select_one("div:has(a) + div")
print(t.text)
打印:
Jan 7, 2013, 5:41 AM
bs4
API 時間必須包含PM
或AM
,因此 select <div>
包含此字符串:
t = soup.find("div", text=lambda t: t and (" AM" in t or " PM" in t))
print(t.text)
印刷:
Jan 7, 2013, 5:41 AM
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.