Python 从使用相同标签的网站中的html标签中提取价格
明天凌晨2点,我将发布这个问题和答案。。。事先非常抱歉 我正在从这个特定的页面上抓取网页: 我所遇到的困难是在使用了很多次的标签之间刮取信息,基本上使它们成为千分之一 以下是我需要的代码部分(我需要价格):Python 从使用相同标签的网站中的html标签中提取价格,python,html,web-scraping,beautifulsoup,Python,Html,Web Scraping,Beautifulsoup,明天凌晨2点,我将发布这个问题和答案。。。事先非常抱歉 我正在从这个特定的页面上抓取网页: 我所遇到的困难是在使用了很多次的标签之间刮取信息,基本上使它们成为千分之一 以下是我需要的代码部分(我需要价格): € 1.340.000 这是我从同一个网站上获取信息的代码,上面有一个标签,但是这个标签的类型是单数的,很容易找到 while pagina <= temp: if pagina == 1: soup = BeautifulSoup(requests.g
-
€ 1.340.000
这是我从同一个网站上获取信息的代码,上面有一个标签,但是这个标签的类型是单数的,很容易找到
while pagina <= temp:
if pagina == 1:
soup = BeautifulSoup(requests.get(userurl).content, "html.parser")
for link in soup.select("[data-row-link]"):
list_links.append(link["href"])
list_titles.append(link.get_text(strip=True))
#-----------------
for link in soup.select(("lif__pricing")):
list_prices.append(link.get_text(strip=True))
#-----------------
pagina += 1
else:
userurl = userurl + "&pag=" + str(pagina)
soup = BeautifulSoup(requests.get(userurl).content, "html.parser")
for link in soup.select("[data-row-link]"):
list_links.append(link["href"])
list_titles.append(link.get_text(strip=True))
# -----------------
for link in soup.select(("lif__pricing")):
list_prices.append(link.get_text(strip=True))
# -----------------
pagina += 1
while pagina您可以使用此代码抓取所有页面并提取链接、标题和价格+创建数据框并将其保存到csv:
import requests
import pandas as pd
from bs4 import BeautifulSoup
url = "https://www.immobiliare.it/vendita-case/roma/parioli-flaminio/?criterio=rilevanza&pag={page}"
list_links, list_titles, list_prices = [], [], []
page = 1
while True:
print("Page {}...".format(page))
soup = BeautifulSoup(
requests.get(url.format(page=page)).content, "html.parser"
)
links = soup.select("[data-row-link]")
if not links:
break
for link in links:
l, t, p = (
link["href"],
link.get_text(strip=True),
link.find_next(
class_=["lif__pricing", "lif__pricing--wrapped"]
).get_text(strip=True, separator=" "),
)
list_links.append(l)
list_titles.append(t)
list_prices.append(p)
print(l, t, p, sep="\n")
print("-" * 80)
page += 1
df = pd.DataFrame(
{
"title": list_titles,
"price": list_prices,
"link": list_links,
}
)
print(df)
df.to_csv("data.csv", index=False)
印刷品:
第1页。。。
https://www.immobiliare.it/annunci/87572320/
罗马帕里奥利皮塔戈拉三联广场
€ 660.000
--------------------------------------------------------------------------------
https://www.immobiliare.it/annunci/87574354/
罗马弗拉米尼奥佩林德尔瓦加广场
€ 430.000
--------------------------------------------------------------------------------
https://www.immobiliare.it/annunci/87573756/
罗马帕里奥利皮塔戈拉三联广场
€ 660.000
--------------------------------------------------------------------------------
https://www.immobiliare.it/annunci/87578264/
罗马平西亚诺阿达别墅20号加埃塔诺·多尼泽蒂公寓
€ 695.000
--------------------------------------------------------------------------------
等等
然后保存data.csv
(来自LibreOffice的屏幕截图):
如果我明天再回答,我很抱歉,我真的很想解决这个问题。再次感谢和抱歉<代码>用于汤中的链接。选择(“.lif\u定价”)
非常感谢!它工作得很好!
import requests
import pandas as pd
from bs4 import BeautifulSoup
url = "https://www.immobiliare.it/vendita-case/roma/parioli-flaminio/?criterio=rilevanza&pag={page}"
list_links, list_titles, list_prices = [], [], []
page = 1
while True:
print("Page {}...".format(page))
soup = BeautifulSoup(
requests.get(url.format(page=page)).content, "html.parser"
)
links = soup.select("[data-row-link]")
if not links:
break
for link in links:
l, t, p = (
link["href"],
link.get_text(strip=True),
link.find_next(
class_=["lif__pricing", "lif__pricing--wrapped"]
).get_text(strip=True, separator=" "),
)
list_links.append(l)
list_titles.append(t)
list_prices.append(p)
print(l, t, p, sep="\n")
print("-" * 80)
page += 1
df = pd.DataFrame(
{
"title": list_titles,
"price": list_prices,
"link": list_links,
}
)
print(df)
df.to_csv("data.csv", index=False)