网站上的网页抓取,每个<div>代码都在更改



我正在这个网站上进行一些网络抓取,我试图使用的soup.select函数遇到了问题。基本上这是他们的HTML代码:

<li class="Features_nd-list__item__3hWVx Features_in-feat__item__2-hIE Features_in-feat__item--main__3EFFl RealEstateListCard_in-realEstateListCard__features--main__2uSci">€ 489.000</li>

我需要选择这个列表项来获得这个广告的价格。问题是,他们最近更改了HTM1代码,并包含了HTMl代码中每个元素随机更改的代码,可能会阻止我尝试做的事情…

示例:

<li class="Features_nd-list__item__3hWVx

这个3hWVx是一个不断变化的部分,必须在每次添加时自动选择每个价格,并且代码不断变化,我找不到它来选择。这是我为href找到的解决方案,但我无法为代码的其他部分解决它。

我的代码:

soup = BeautifulSoup(requests.get(userurl).content, "html.parser")
for link in soup.select('a[href^="https://www.immobiliare.it/annunci/"]'):
list_links.append(link["href"])
list_titles.append(link.get_text(strip=True))
for link in soup.select('li[class^="Features_nd-list__item__"]'):
if "€" in link:
list_prices.append(link.get_text(strip=True))

我希望你们能帮助我,因为这真的很难理解和解决这个问题。

谢谢!

尝试:

import requests
from bs4 import BeautifulSoup
# for example this url:
url = "https://www.immobiliare.it/vendita-case/agrigento/"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
list_links = []
list_titles = []
list_prices = []
for ad in soup.select('li[id^="link_ad"]'):
list_links.append(ad.a["href"])
list_titles.append(ad.a.get_text(strip=True))
price = ad.find(lambda t: t.name == "li" and "€" in t.text)
# alternative:
# price = ad.select_one('li:-soup-contains("€")')
list_prices.append(price.text if price else "-")
# pretty print the lists:
for t, p, l in zip(list_titles, list_prices, list_links):
print("{:<50}  {:<10}  {:<40}".format(t[:50], p, l))

打印:

Appartamento via Parco Angeli, San Leone, Villaset  € 165.000   https://www.immobiliare.it/annunci/89607425/
Trilocale Cortile Bosio, Centro Storico, Agrigento  € 139.000   https://www.immobiliare.it/annunci/89607405/
Appartamento via Piersanti Mattarella, Via Imera,   € 129.000   https://www.immobiliare.it/annunci/89607367/
Quadrilocale via Empedocle, Centro Storico, Agrige  € 127.000   https://www.immobiliare.it/annunci/89607385/
Bilocale via Atenea, Centro Storico, Agrigento      € 57.000    https://www.immobiliare.it/annunci/89607351/
Quadrilocale piazza Fratelli Rosselli, Via Imera,   -           https://www.immobiliare.it/annunci/89607329/
Quadrilocale viale della Vittoria, Via Imera, V. d  -           https://www.immobiliare.it/annunci/89607437/
Villa unifamiliare viale dei Giardini 67, San Leon  € 680.000   https://www.immobiliare.it/annunci/89595189/
Appartamento via Parco Angeli, San Leone, Villaset  € 165.000   https://www.immobiliare.it/annunci/89566323/
Trilocale Cortile Bosio, Centro Storico, Agrigento  € 139.000   https://www.immobiliare.it/annunci/89566319/
Appartamento via Piersanti Mattarella, Via Imera,   € 129.000   https://www.immobiliare.it/annunci/89566261/
Trilocale via dei Borboni, San Leone, Villaseta, V  € 57.000    https://www.immobiliare.it/annunci/89566253/
Quadrilocale via Empedocle, Centro Storico, Agrige  € 127.000   https://www.immobiliare.it/annunci/89566313/
Bilocale via Michele Lizzi, San Leone, Villaseta,   € 99.000    https://www.immobiliare.it/annunci/89566247/
Bilocale via Atenea, Centro Storico, Agrigento      € 57.000    https://www.immobiliare.it/annunci/89566263/
Quadrilocale piazza Fratelli Rosselli, Via Imera,   -           https://www.immobiliare.it/annunci/89566257/
Appartamento viale della Vittoria, Via Imera, V. d  -           https://www.immobiliare.it/annunci/89566329/
Villa unifamiliare via Vittorio De Sica, San Leone  € 169.000   https://www.immobiliare.it/annunci/89566171/
Trilocale via Michele Amari, San Leone, Villaseta,  € 48.000    https://www.immobiliare.it/annunci/89574519/
Appartamento via Parco Angeli, San Leone, Villaset  € 165.000   https://www.immobiliare.it/annunci/89550179/
Trilocale Cortile Bosio, Centro Storico, Agrigento  € 139.000   https://www.immobiliare.it/annunci/89550131/
Appartamento via Piersanti Mattarella, Via Imera,   € 129.000   https://www.immobiliare.it/annunci/89549999/
Quadrilocale via Empedocle, Centro Storico, Agrige  € 127.000   https://www.immobiliare.it/annunci/89549901/
Appartamento piazza Fontanelle 28, Serraferlicchio  € 78.000    https://www.immobiliare.it/annunci/89524063/
Appartamento viale della Vittoria, Via Imera, V. d  -           https://www.immobiliare.it/annunci/89550241/

相关内容

  • 没有找到相关文章

最新更新