Извлечение данных с сайта и разных страниц и сохранение в CSV - PullRequest
0 голосов
/ 12 июня 2018

Я работаю с селеновым веб-драйвером для поиска и извлечения данных с этого сайта https://www.idealista.com/venta-viviendas/marbella-malaga/

Я хочу получить таблицу с ценами каждого из домов (класс item_price), количеством комнат (класс item_detail) и кв. метры (класс item_detail).

Я считаю, что мне нужно использовать метод driver.find_elements (), но я не знаю, где его добавить и как убедиться, что мы добавимвсе цены, номера и кв. метры в таблице с тремя столбцами.

Пока я получил этот код, но он не работает.Я вижу, как FireFox просматривает страницы, но кажется, что он не хранит и не хранит данные в Houses.csv.Кто-нибудь может помочь?Спасибо

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
import pandas as pd
import csv
import time

driver = webdriver.Firefox()
driver.get("https://www.idealista.com/venta-viviendas/marbella/las-chapas-el-rosario/")

pages_remaining = True
price = []
rooms = []
size = []

while pages_remaining:

    price = driver.find_elements_by_class_name("item-price")
    rooms = driver.find_elements_by_xpath("//*[contains(text(), 'hab.')]")
    size = driver.find_elements_by_xpath("//*[contains(text(), 'm²')]")
    houses = [price, rooms, size]
    try:
        # Checks if there are more pages with links
        next_link = driver.find_element_by_class_name("icon-arrow-right-after")
        next_link.click()
        time.sleep(10)
    except NoSuchElementException:
        rows_remaining = False

with open('houses.csv', 'wb') as csvfile:
    csvwriter = csv.writer(csvfile)
    csvwriter.writerows(houses)

print(houses)
...