我尝试从官方银行业数据中获取一些每周数据。然而,即使代码工作正常,该列表还是作为一个空列表出现。
我的python代码如下:
import requests
from bs4 import BeautifulSoup
import urllib.request
url="http://www.bddk.org.tr/BultenHaftalik"
r=requests.get(url)
html_content=r.text
soup=BeautifulSoup(html_content,"html.parser")
veri_tablosu=soup.find('table', class_='table table-bordered table-condensed verigostermetablosu responsive-table')
for veri in veri_tablosu.find_all('tbody'):
rows=veri.find_all('tr')
for row in rows:
basliklar=row.find('td', class_= 'ortala')
print(basliklar)
答案 0 :(得分:0)
看起来 beautifulsoup 无法找到 <tbody>
并返回 None
而不是 body 元素列表。
虽然你可以尝试直接从表中提取<tr>
veri_tablosu=soup.find('table', class_='table table-bordered table-condensed verigostermetablosu responsive-table')
for row in veri_tablosu.find_all('tr'):
basliklar=row.find('td', class_= 'ortala')
print(basliklar)
答案 1 :(得分:0)
答案 2 :(得分:0)
这是因为 <tbody>
不存在于 soup
中。所以你得到一个空的结果。
您可以不使用 <tbody>
,而是直接选择 <tr>
名称为 satir 的行 class
(因为这是数据所在的位置< /em>) 并提取您需要的数据。
代码如下:
basliklar = []
for veri in veri_tablosu.findAll('tr', class_='satir'):
basliklar.append(veri.find('td', class_= 'ortala').text)
print(basliklar)
Output
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20']