我正在嘗試顯示使用 bs4 抓取的附加專案串列中的值。目前,我的代碼只回傳一整套資料,但我希望從資料中顯示單獨的值。現在,我得到的是:
NameError:未定義值。
怎么做?
data = []
for e in soup.select('div:has(> div > a h3)'):
data.append({
'title':e.h3.text,
'url':e.a.get('href'),
'desc':e.next_sibling.text,
'email': re.search(r'[\w. -] @[\w-] \.[\w.-] ', e.parent.text).group(0) if
re.search(r'[\w. -] @[\w-] \.[\w.-] ', e.parent.text) else None
})
data
title = print(title) # name error
desc = print(desc) # name error
email = print(email) # name error
uj5u.com熱心網友回復:
主要問題是您嘗試僅在keys不考慮存在data字典串列的情況下參考。
data所以如果你想列印一個特定的,你必須按索引選擇你的字典:
print(data[0]['title'])
print(data[0]['desc'])
print(data[0]['email'])
替代方法只是迭代data并列印/操作每個字典的值:
for d in data:
print(d['title'])
print(d['desc'])
print(d['email'])
要么
for d in data:
title = d['title']
desc = d['desc']
email = d['email']
print(f'print title only: {title}')
uj5u.com熱心網友回復:
你可以這樣做:
for e in soup.select('div:has(> div > a h3)'):
title=e.h3.text,
url=e.a.get('href'),
desc=e.next_sibling.text,
email= re.search(r'[\w. -] @[\w-] \.[\w.-] ', e.parent.text).group(0) if re.search(r'[\w. -] @[\w-] \.[\w.-] ', e.parent.text) else None
print(title)
print(desc)
print(email)
print(url)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/456935.html
標籤:python-3.x 列表 字典 网页抓取 美丽的汤
