简体   繁体   English

Web抓取python,empy输出

[英]Web scraping python, empy output

I need some help with the following code: 我需要以下代码的帮助:

import csv
import requests
from bs4 import BeautifulSoup
import datetime

filename = "imob_" + datetime.datetime.now().strftime("%Y-%m-%d-%H-%M")+".csv"
with open(filename, "w+") as f:
    writer = csv.writer(f)
    writer.writerow(["Localizare","Pret","Data"])

    for i in range(1,100):
        r = requests.get("https://www.imobiliare.ro/inchirieri-case-vile/brasov?pagina="+format(i))

        soup = BeautifulSoup(r.text, "html.parser")
        array_price= soup.find_all('div', class_='pret')
        array_desc=soup.find_all('h2', class_='titlu-anunt hidden-xs',text=True)
        for iterator in range(0,len(array_price)):
            localizare = array_desc[iterator].text.strip()
            pret = array_price[iterator].text.strip()

            writer.writerow([localizare, pret, datetime.datetime.now()]) 

The output is empty. 输出为空。 Can someone give me an advice, please? 有人可以给我个建议吗? Thank you. 谢谢。

You had a couple of issues: 您遇到了两个问题:

First as stated in the comments the class price does not exist. 首先,如评论中所述,类别price不存在。 You could use pret but it's easier to use soup.find_all('span', class_="pret-mare") 您可以使用pret但更容易使用soup.find_all('span', class_="pret-mare")

Second array_desc=soup.find_all('h2', class_='titlu-anunt hidden-xs',text=True) is returning empty. 第二个array_desc=soup.find_all('h2', class_='titlu-anunt hidden-xs',text=True)返回空。 I removed text=True and it started working. 我删除了text=True ,它开始起作用。

import csv
import requests
from bs4 import BeautifulSoup
import datetime

filename = "imob_" + datetime.datetime.now().strftime("%Y-%m-%d-%H-%M")+".csv"
with open(filename, "w+") as f:
    writer = csv.writer(f)
    writer.writerow(["Localizare","Pret","Data"])

    for i in range(1,100):
        r = requests.get("https://www.imobiliare.ro/inchirieri-case-vile/brasov?pagina="+format(i))

        soup = BeautifulSoup(r.text, "html.parser")
        array_price = soup.find_all('span', class_="pret-mare")
        array_desc=soup.find_all('h2', class_='titlu-anunt hidden-xs')
        for iterator in range(0,len(array_price)):
            localizare = array_desc[iterator].text.strip()
            pret = array_price[iterator].text.strip()

            writer.writerow([localizare, pret, datetime.datetime.now()])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM