【问题标题】:Print text in <p> element under <div>在 <div> 下的 <p> 元素中打印文本
【发布时间】:2021-03-30 12:55:44
【问题描述】:

我需要在&lt;p&gt; 元素和class='fs-s fw-light pl-4 pr-4' 中为网站上的每个房屋打印文本。我尝试这种方式,但它立即开始和结束。

import gspread
import requests
import datetime 
from bs4 import BeautifulSoup
from datetime import timedelta

datetime.datetime.now()

#zaklad pro scraping webu
URL = 'https://www.mmreality.cz/nemovitosti/prodej/byty/praha-vychod/?query=bcw9DoAgDIbh2zgjiro4eQzCQBB%2FErUEigm3F3Ss69Ovr4HzhEsG1BiDkkyNdWU%2B0wb32xZYLaxeuy3J2S46HjhBvNCn9%2BYhupAfJSZnvwRnjHqtRiEo8zL%2FyTR53lFuMw%2BUReaeclfi%2FAE%3D'
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')

#Scraping
results = soup.find_all('id', attrs={'class':'cell xsmall-24 mb-4 grid-y pos-relative rounded pseudo-border pseudo-border-primary-lightest pseudo-border-on-hover-none pseudo-box-shadow-xlarge-on-hover medium-12 xlarge-8'}) 
for job_data in results:

    nemovitost = job_data.find('p', attrs={'class':'fs-s fw-light pl-4 pr-4'})
    nemovitost_final = nemovitost.text.strip()

    print(nemovitost_final)

我使用for job_data in results 尝试此代码 - 用于 id,因为它是我要打印的组元素的标题。在元素&lt;p&gt; 之后我想打印&lt;strong class="block text-secondary fs-xxl pl-4 pr-4 mb-4"&gt;6 800 000 Kč&lt;/strong&gt; 等。

我尝试从这个网站打印文本:www.mmreality.cz

【问题讨论】:

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


    【解决方案1】:

    你可以试试这个例子来获取你的数据:

    import requests
    from bs4 import BeautifulSoup
    
    
    url = "https://www.mmreality.cz/nemovitosti/prodej/byty/praha-vychod/?query=bcw9DoAgDIbh2zgjiro4eQzCQBB%2FErUEigm3F3Ss69Ovr4HzhEsG1BiDkkyNdWU%2B0wb32xZYLaxeuy3J2S46HjhBvNCn9%2BYhupAfJSZnvwRnjHqtRiEo8zL%2FyTR53lFuMw%2BUReaeclfi%2FAE%3D"
    soup = BeautifulSoup(requests.get(url).content, "html.parser")
    
    for p in soup.select("p.fs-s.fw-light.pl-4.pr-4"):
        popis = p.get_text(strip=True, separator="\n")
        cena = p.find_previous("strong").get_text(strip=True)
    
        print(popis)
        print(cena)
        print("-" * 80)
    

    打印:

    Polerady
    Prodej, Byt 3+kk, 246 m², Polerady
    6 800 000 Kč
    --------------------------------------------------------------------------------
    Partyzánská, Odolena Voda
    Prodej, Byt 3+kk, 80 m², Odolena Voda, Partyzánská
    5 149 000 Kč
    --------------------------------------------------------------------------------
    Na Vyhlídce, Škvorec
    Prodej, Byt 5+kk, 508 m², Škvorec, Na Vyhlídce
    11 645 000 Kč
    --------------------------------------------------------------------------------
    Lipová, Mukařov
    Prodej, Byt 5+kk, 252 m², Mukařov, Lipová
    10 140 000 Kč
    --------------------------------------------------------------------------------
    Kosatcová, Říčany, Radošovice
    Prodej, Atypický byt, 279 m², Říčany, Kosatcová
    14 000 000 Kč
    --------------------------------------------------------------------------------
    Rooseveltova, Říčany
    Prodej, Byt 4+kk, 109 m², Říčany, Rooseveltova
    5 750 000 Kč
    --------------------------------------------------------------------------------
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      • 2023-01-12
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多