friendCount не печатает ожидаемый вывод - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь создать веб-скребок, который печатает все имена моих друзей из Facebook, но я получаю неожиданный вывод.

Соответствующий код:

driver.get("https://www.facebook.com/redacted/friends")

friendCount = driver.find_element_by_class_name("_3d0")
print(friendCount)

но он печатает

<selenium.webdriver.remote.webelement.WebElement (session="7b784934706f2f102a4918fbe734726d", element="695f03b8-d6a5-4879-8575-01d52b720f79")>

Я попытался ввести строку в целое число, используя:

friendCount = int(driver.find_element_by_class_name("_3d0"))

, но это выдает

    friendCount = int(driver.find_element_by_class_name("_3d0"))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'WebElement'

что я могу сделать, чтобы превратить это в целое число?

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Ваш код ищет один веб-элемент (и распечатывает его). Если вы ищете список друзей, а не только одного, вы должны использовать driver.find_elements_by_class_name вместо driver.find_element_by_class_name

, и да, это должно быть .text, чтобы вернуть имя, а не сам веб-элемент.

friendCount = driver.find_elements_by_class_name("_3d0")
for x in friendCount:
    print(x.text)

Или, если хотите, просто количество друзей.

friendCount = driver.find_elements_by_class_name("_3d0")
print(len(friendCount))
0 голосов
/ 29 января 2020

Как упоминал Кшиштоф, добавление .text к переменной выводит число. спасибо

...