【问题标题】:BeautifulSoup won't find tagBeautifulSoup 找不到标签
【发布时间】:2018-07-29 12:09:25
【问题描述】:

我从一个网站中读取了一些 HTML,我试图将其解析为一个汤对象。之后,我提取了我查看过的 HTML 正文,发现它确实包含我正在寻找的项目。

我要查找的项目包含在<div> 标记内,带有class = 'listitem artikal obicniArtikal imaHover-disabled i index'.

现在我正在尝试做:

r = requests.get('https://www.olx.ba/pretraga?trazilica=golf+2', timeout=5)
soup = BeautifulSoup(r.text, 'html.parser') 
body = soup.find('div', attrs={'id':'rezultatipretrage'})

all_items = body.find_all('div', class_='listitem artikal obicniArtikal imaHover-disabled i index') 
print(all_items)

all_items 返回一个空列表,即使标签存在于body 中。

如果有人能告诉我发生了什么,我将不胜感激。

【问题讨论】:

    标签: python html web-scraping beautifulsoup tags


    【解决方案1】:

    要选择包含所有指定类的标签,可以使用 BeautifulSoup 的select() 方法。

    soup.select('div#rezultatipretrage div.listitem.artikal.obicniArtikal.imaHover-disabled.i.index') 将选择所有 <div>listitem artikal obicniArtikal imaHover-disabled i index 标记在 <div> 标记下 id="rezultatipretrage":

    from bs4 import BeautifulSoup
    import requests
    
    r = requests.get('https://www.olx.ba/pretraga?trazilica=golf+2', timeout=5)
    soup = BeautifulSoup(r.text, 'lxml')
    
    all_items = soup.select('div#rezultatipretrage div.listitem.artikal.obicniArtikal.imaHover-disabled.i.index')
    
    for item in all_items:
        print(item.p.text)
        print('-' * 80)
    

    将打印:

    VW Golf 6 2.0 TDI XENON-NAVI-KAMERA-KOZA
    --------------------------------------------------------------------------------
    Golf 5 2.0 tdi. Sport line. bosch dizne
    --------------------------------------------------------------------------------
    VW GOLF 7 2.0 TDI DSG , ID: 086
    --------------------------------------------------------------------------------
    VW GOLF 5 2.0 TDI, 2005 god. Registrovan
    --------------------------------------------------------------------------------
    Golf 5 2.0 DIZEL SDI TEK REGISTROVAN
    --------------------------------------------------------------------------------
    Volkswagen Golf 6 2.0 TDI GTI-GTD-R LINE
    --------------------------------------------------------------------------------
    VW GOLF 5,2.0 TDI,103 KW,04 G.P,6 BRZ.MOTOR U KVARU
    --------------------------------------------------------------------------------
    Golf 6 2.0 TDI
    --------------------------------------------------------------------------------
    VW GOLF 7 2.0tdi 110kw 150ks mod 2014g
    --------------------------------------------------------------------------------
    Golf 2 1.6Dizel reg do 12 2018god
    --------------------------------------------------------------------------------
    VW Golf 2.0 ekstra stanje
    --------------------------------------------------------------------------------
    Golf 2 DIZEL 4 VRATA
    --------------------------------------------------------------------------------
    Golf 2
    --------------------------------------------------------------------------------
    VW GOLF 5 V 2.0 TDI CLIMATRONIC
    --------------------------------------------------------------------------------
    

    【讨论】:

    • 这是解决问题的方法。非常感谢!
    猜你喜欢
    • 2020-06-04
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多