BeautifulSoup для разбора последователей soundcloud - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь проанализировать страницу soundcloud и получить ссылки и имена пользователей со страницы "подписчиков" аккаунтов.

Я пробовал следующее, но я не получаю ссылки, содержащие то, что я хочу

from selenium import webdriver
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.common.exceptions import TimeoutException
from bs4 import BeautifulSoup

driver = webdriver.Firefox(executable_path="C:\\Users\\marco\\Downloads\\geckodriver- 
v0.23.0-win64\\geckodriver.exe")

driver.get("https:////soundcloud.com/marco-valencia/followers")
soup = BeautifulSoup(driver.page_source)

print(soup.find_all("a"))

Я хотел бы найти все "a" класса "userBadgeListItem__image" и извлечь строку href и соответствующую ссылку.

1 Ответ

0 голосов
/ 07 января 2019

Для BeautifulSoup найти a элемент с классом

soup.find_all("a", class_="userBadgeListItem__image")

Но пока давайте использовать только Selenium. У класса userBadgeListItem__image нет текста привязки, измените его на userBadgeListItem__heading

driver.get("https://..............")

# scroll down to get all followers
while True:
    driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
    time.sleep(3) # wait ajax request
    try:
        # loop until this loading element removed from the page
        driver.find_element_by_css_selector('div.loading.regular.m-padded')
    except: break

# finally extract the followers
followers = driver.find_elements_by_class_name('userBadgeListItem__heading')
for f in followers:
    print('%s: %s' % (f.text, f.get_attribute('href')))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...