我需要在 Python 中使用美洲 500 強公司的資訊做一個 DataFrame:
https://www.americaeconomia.com/negocios-industrias/estas-son-las-500-mayores-empresas-de-america-latina-2021
我嘗試進行網路報廢,當我列印(tabla)時,它說 [] 或 None ...
from bs4 import BeautifulSoup
import requests
url = 'https://www.americaeconomia.com/negocios-industrias/estas-son-las-500-mayores-empresas-de-america-latina-2021'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
tabla = soup.find('table', {"id":"awesomeTable"})
print(tabla)
uj5u.com熱心網友回復:
怎么了?
總是先看看你的湯——這就是事實。內容總是與開發工具中的視圖略有不同。
你不會在你的湯中找到這張桌子,因為它在 iframe 中。
怎么修?
使用 iframe 源的 url 來執行您的請求:
https://rk.americaeconomia.com/display/embed/500-latam/2021
例子
import requests
from bs4 import BeautifulSoup
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}
r = requests.get('https://rk.americaeconomia.com/display/embed/500-latam/2021',headers=headers)
soup = BeautifulSoup(r.text,'lxml')
data = []
for row in soup.select('#awesomeTable tbody tr.dataRow'):
data.append(list(row.stripped_strings))
pd.DataFrame(data, columns=list(soup.select_one('#awesomeTable tr').stripped_strings))
輸出
| RK 2021 | EMPRESA | 派斯 |
|---|---|---|
| 1 | 巴西石油公司 | 胸罩 |
| 2 | JBS | 胸罩 |
| 3 | 美國 MóVIL | MX |
| 4 | 墨西哥石油公司 | MX |
| 5 | 谷 | 胸罩 |
| ... | ... | ... |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/405864.html
標籤:
上一篇:引導導航欄下拉選單不起作用
