我寫了以下代碼
page=requests.get("http://3.85.131.173:8000/random_company")
soup=BeautifulSoup(page.content,"html.parser")
info_list=soup.find_all("li")
print(info_list)
并列印給出以下答案
[<li>Name: Walker, Meyer and Allen</li>, <li>CEO: David Pollard</li>, <li>CTO: Sandra Boyd</li>, <li>Address: 275 Jones Station Suite 008
Bradburgh, UT 24369</li>, <li>Investment Round: C</li>, <li>Purpose: Reduced logistical contingency for whiteboard end-to-end applications</li>]
我想在使用索引之前提取名稱和位置,但它是動態的,任何人都可以建議如何提取名稱和目的。
反饋后我編輯的代碼:
page=requests.get("http://3.85.131.173:8000/random_company")
soup=BeautifulSoup(page.content,"html.parser")
info_list=soup.find_all("li")
print(info_list)
name=[]
purpose=[]
我現在可以成功列印名稱和位置。它給出了以下輸出 ['Name: Burnett and Sons'] 假設如果我只想要 Burnett and Sons 那么我該怎么辦?有什么建議嗎?
uj5u.com熱心網友回復:
我想你正在尋找這樣的東西:
targets = ["Name","Purpose"]
for item in info_list:
if item.text.split(":")[0] in targets:
print(item.text)
輸出(在這種情況下):
Name: Jimenez LLC
Purpose: Mandatory context-sensitive approach for leverage compelling communities
uj5u.com熱心網友回復:
if 'Name' in item.text:
name=name.append(item) <-- Wrong: assigns None to name
if 'Purpose' in item.text:
purpose=purpose.append(item) <-- Wrong: assign None to purpose
上面兩條尖線是問題所在。list.append()回傳無。
(見進一步解釋:為什么 append() 在 Python 中總是回傳 None?)
要獲得預期的輸出,請洗掉該name=部分,然后list.append()將其行內添加到您的串列中,如下所示:
for item in item_list:
if 'Name' in item.text:
name.append(item.text)
if 'Purpose' in item.text:
purpose.append(item.text)
print(name, purpose)
應該列印:
['Name: Ward and Sons'] ['Purpose: User-friendly mission-critical algorithm for visualize killer e-business']
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/341167.html
上一篇:在論壇網站上抓取文本時排除引號
下一篇:使用網頁抓取創建資料框
