−1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--incognito')
driver = webdriver.Chrome(chrome_options=chrome_options)
#Login.
driver.get("https://m.vk.com")
email = 'не скажу!'
password = '123'
email_field = driver.find_element_by_name("email")
email_field.send_keys(email)
password_field = driver.find_element_by_name("pass")
password_field.send_keys(password, Keys.RETURN)
#Scrolling audios.
driver.get("https://m.vk.com/audio76306432")
songs_amount = 6200
batch_amount = 20
currently_loaded = 0
while currently_loaded < songs_amount:
driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')
try:
WebDriverWait(driver, 0).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a[class='show_more']")))
print('Click')
except:
print('More button not located!')
print(f"{currently_loaded} / {songs_amount}")
try:
scroll_defence_element = driver.find_element_by_css_selector("a[class='show_more AudioSection__showMore--my']")
scroll_defence_element.click()
print('Click!!!')
except:
print("No button to click")
currently_loaded += batch_amount
#todo: save the page
#time.sleep(10)
#driver.quit()
Я уже давно хотел себе скачать аудио из вк, хотя бы их список, мало ли что... В общем, оказалось, что апи для музыки закрыли в 2016, и я немного опоздал )))
И я решил написать на питоне штуку, чтобы она мне за ночь прокрутила весь список песен, а я бы потом распарсил страничку и достал названия. кто найдёт пасхалку -- тот молодец!
Запостил:
JloJle4Ka,
16 Февраля 2021
блядь, это же осетия
Теперь пишут это вручную. ДВадцать лет регресса
На самом деле VBA конечно лучше, потому что он работал с документированными объектами, а не вот с этим вот
>a[class='show_more AudioSection__showMore--my']
Но многие другие тулы для UI тестов умеют
Оказывается, умеет!
Но там нетривиальная питушня. Если быстро скроллить, то вк окукливается и вместо бесконечного скролла выдаёт кнопку "показать ещё", при этом до такого кейса ещё доскроллить нужно, в итоге мокрос большой получится. Да и сложно всё это, легче сразу написать самому.
а уже написали
Хочу, чтобы для каждой либы была своя ИДЕ:
1. QtCreator IDE
2. Boost::IDE
3. Asio IDE
4. WxIDE
5. GK IDE (для написания комментариев на говнокод)
6. IDE чтобы продолжить этот список, а то я устал.
Быть может, зря я так обиженку подрубил? Может, не стоило?