−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
OCETuHCKuu_nemyx 16.02.2021 16:56 # +1
bormand 16.02.2021 17:02 # 0
MAPTbIwKA 16.02.2021 17:05 # +2
блядь, это же осетия
JloJle4Ka 16.02.2021 17:05 # 0
guest6 16.02.2021 18:40 # +3
MAPTbIwKA 16.02.2021 16:59 # +2
Теперь пишут это вручную. ДВадцать лет регресса
Desktop 16.02.2021 17:09 # 0
MAPTbIwKA 16.02.2021 17:11 # 0
На самом деле VBA конечно лучше, потому что он работал с документированными объектами, а не вот с этим вот
>a[class='show_more AudioSection__showMore--my']
Desktop 16.02.2021 17:12 # 0
Но многие другие тулы для UI тестов умеют
JloJle4Ka 16.02.2021 17:35 # 0
Оказывается, умеет!
Но там нетривиальная питушня. Если быстро скроллить, то вк окукливается и вместо бесконечного скролла выдаёт кнопку "показать ещё", при этом до такого кейса ещё доскроллить нужно, в итоге мокрос большой получится. Да и сложно всё это, легче сразу написать самому.
bootcamp_dropout 17.02.2021 21:18 # 0
а уже написали
MAPTbIwKA 17.02.2021 21:19 # 0
JloJle4Ka 19.02.2021 13:59 # 0
Хочу, чтобы для каждой либы была своя ИДЕ:
1. QtCreator IDE
2. Boost::IDE
3. Asio IDE
4. WxIDE
5. GK IDE (для написания комментариев на говнокод)
6. IDE чтобы продолжить этот список, а то я устал.
bootcamp_dropout 19.02.2021 14:04 # 0
hormand 20.02.2021 22:03 # 0
Быть может, зря я так обиженку подрубил? Может, не стоило?