Как получить текст нескольких элементов div внутри тега списка при прокрутке страницы с помощью Python - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть следующая веб-страница https://www.skroutz.gr/s/15013958/Hasbro-Monopoly-Classic-Game.html, с которой я хочу получить для продавца цену, доступность, имя продавца.

Они находятся внутри элемента списка в виде элементов div, поэтому я сделал следующее

import time

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser = webdriver.Chrome('C:\\chromedriver.exe')

browser.get("https://www.skroutz.gr/s/15013958/Hasbro-Monopoly-Classic-Game.html")
time.sleep(1)

elem = browser.find_element_by_tag_name("body")

no_of_pagedowns = 20

while no_of_pagedowns:
    elem.send_keys(Keys.PAGE_DOWN)
    time.sleep(0.2)
    no_of_pagedowns-=1

post_elems = browser.find_elements_by_css_selector(".card.js-product-card")

for post in post_elems:
    print(post.text)

До сих пор я получаю данные целиком, а не по div.Как узнать цену, наличие и продавца за пост

Должен ли я сделать следующее?или есть более правильный путь?

for post in post_elems:
    prices = browser.find_elements_by_css_selector(".price")
    sellers = browser.find_elements_by_css_selector(".shop-name")
    availability = browser.find_elements_by_css_selector("p.availability")

1 Ответ

1 голос
/ 08 апреля 2019

Вы можете использовать элемент post, чтобы найти данные, он найдет только данные, относящиеся к конкретной записи

data = []
for post in post_elems:
    price = post.find_element_by_css_selector(".price").text
    seller = post.find_element_by_css_selector(".shop-name").text
    availability = post.find_element_by_css_selector("p.availability").text

    # add to list of lists
    data.append([price, seller, availability])

    # print
    print(f'price: {price} seller: {seller} availability: {availability}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...