当我抓取网页时,TD列表变为空

2024-05-13 10:40:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从官方银行业数据中获取一些每周数据。然而,即使代码工作正常,列表仍然是一个空列表

我的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)

Tags: 数据代码importurl列表htmltablecontent
3条回答

看起来beautifulsoup无法找到<tbody>,并返回None而不是正文元素列表。 尽管您可以尝试直接从表中提取<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)  

问题是tobdy不在源html中,因此不能使用find_all('tbody')enter image description here

只需使用for veri in veri_tablosu.find_all('tr')

这是因为<tbody>soup中不存在。所以你得到了一个空的结果

代替使用<tbody>,您可以直接选择class名称为satir的行<tr>,因为那里的数据是),并提取所需的数据

下面是代码的外观:

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']

相关问题 更多 >