【问题标题】:BeautifulSoup returns missing informationBeautifulSoup 返回缺失的信息
【发布时间】:2020-05-14 10:00:28
【问题描述】:

我正在构建网络爬虫,以便从url 获取当天的每日重要事件, 我的代码是:

import requests
from bs4 import BeautifulSoup        

url = "http://www.tarihtebugun.gen.tr/?t=1"

# Get the latest link for the updated news:
try:
    r = requests.get(url)
except Exception as err:
    logging.error("Connect: {}, {}".format(err, url))

soup = BeautifulSoup(r.content, "html.parser")
soup = soup.find_all('td', class_='Maddeler')

olaylar = "Tarihte Bugün\n"

for tarih, olay in zip(soup[0::2], soup[1::2]):        
    olaylar = olaylar + "{}-{}\n".format(fx._b(tarih.get_text().strip()), olay.get_text().strip())

对于 html 行:

<td align='left' valign='top' class='Maddeler' Style='padding-right:3px;'><a href=http://www.tarihtebugun.gen.tr/türkiye.html />Türkiye</a> Tas Kömürü Kurumu Zonguldak'ta kuruldu.</td>

我明白了

<td align='left' valign='top' class='Maddeler' Style='padding-right:3px;'><a href=http://www.tarihtebugun.gen.tr/türkiye.html />Türkiye</a></td>

BeautifulSoup 结果中缺少 URL Anchor 之后的文本。如果没有&lt;a&gt; 标签,则可以正常工作。

我不知道是什么问题

非常感谢

【问题讨论】:

    标签: python-3.x web-scraping beautifulsoup


    【解决方案1】:

    不确定您想要什么作为输出(我在链接中根本看不到该文本)。但是如果你在桌子后面,可能更容易使用 pandas 来抓取那个桌子,那么你可以从数据框中提取任何你想要的文本:

    import pandas as pd
    import requests
    
    
    url = "http://www.tarihtebugun.gen.tr/?t=1"
    
    # Get the latest link for the updated news:
    try:
        r = requests.get(url)
        dfs = pd.read_html(r.text)
    
        df_max = max([len(x) for x in dfs])
        df = dfs[[i for i, j in enumerate(dfs) if len(j) == df_max][0]]
        df = df.dropna(0, 'all')
        df = df.dropna(1, 'all').reset_index(drop=True)
    
        df.columns = df.iloc[0]
        df = df.iloc[1:,:].reset_index(drop=True)
    
    except Exception as err:
        logging.error("Connect: {}, {}".format(err, url))
    

    输出:全表

    print (df)
    0        Tarih                                              Bilgi
    0   14/05/1767  Ýngiliz hükümetinin ithal çaya vergi koymasý ü...
    1   14/05/1924    Türkiye Taþ Kömürü Kurumu Zonguldak'ta kuruldu.
    2   14/05/1946  Türkiye Sosyalist Partisi kuruldu. Baþkanlýða ...
    3   14/05/1948                            Ýsrail devleti kuruldu.
    4   14/05/1950  27 yýllýk Cumhuriyet Halk Partisi iktidarý son...
    5   14/05/1952  Paris'te toplanan Uluslararasý Basýn Enstitüsü...
    6   14/05/1955  Sovyetler Birliði ve Doðu Avrupa'daki sosyalis...
    7   14/05/1955  Nedret Gürcan, Dinar'da , Þairler Yapraðý adlý...
    8   14/05/1957  Dr. Asým Onat Dünya Týp Cemiyeti baþkanlýðýna ...
    9   14/05/1958              Ziya Ademhan 1 yýl hapse mahkum oldu.
    10  14/05/1968  Üniversite öðrencileri "NATO'ya Hayýr" haftasý...
    11  14/05/1974  12 Mart askeri müdahalesi sýrasýnda tutuklanan...
    12  14/05/1984  Yaþar Kemal'in Ýnce Memed romanýný beyaz perde...
    13  14/05/1985  Hüsamettin Cindoruk, Doðru Yol Partisi genel b...
    14  14/05/1996  Ýstanbul Alibeyköy'de Ýrfan Aðdaþ adlý genç po...
    15  14/05/1997  Türk Silahlý Kuvvetleri Kuzey Irak'a yönelik e...
    16  14/05/1997  Danýþtay, Bargama köylülerinin siyanürle altýn...
    

    【讨论】:

    • 这正是我想要的,但我得到了非常损坏的输出。不像上面那样。我复制粘贴代码进行检查。但功能不一样。我会努力看看我是否能找出问题所在。
    猜你喜欢
    • 2017-07-05
    • 2019-12-22
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    相关资源
    最近更新 更多