Грабим логины с форума Invision Power Board

Для этого потребуется — Python, Selenium, PhantomJS
Сложного с одной стороны ничего нет, достаточно авторизоваться и дальше пробегаться до последней страницы. Вот пример кода:


# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
#Адрес жертвы
site_url='http://someportal.ru'
#Файл куда писать логины
f = open('login', 'w')
#Логин к форуму
login='mylogin'
#Пароль к форуму
password='mypassword'


driver = webdriver.PhantomJS()
driver.set_window_size(1120, 550)
#Страница авторизации
driver.get(site_url+"/index.html?act=Login&CODE=00")
#Страница со списком пользователей
members=site_url+"/index.html?&act=Members&photoonly=&name=&name_box=all&max_results=30&filter=3&sort_order=asc&sort_key=name&st="

driver.find_element_by_name('UserName').send_keys(login);
driver.find_element_by_name('PassWord').send_keys(password);
driver.find_element_by_name('submit').click()
time.sleep(1)

#Открываем первую страницу
driver.get(members+"0")
print driver.find_element_by_css_selector(".tableborder > table:nth-child(2) > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(1) > strong:nth-child(1) > a:nth-child(1)").get_attribute('innerHTML')
#Получаем последнюю страницу и ее id
last_page=str(driver.find_element_by_link_text("Последняя »").get_attribute('href'))
last_id=last_page.replace(members,'')
iterator=0

#Собираем логины
while(iterator<last_id): 
    for x in range(2, 32): 
        elem=driver.find_element_by_css_selector(".tableborder > table:nth-child(2) > tbody:nth-child(1) > tr:nth-child("+str(x)+") > td:nth-child(1) > strong:nth-child(1) > a:nth-child(1)").get_attribute('innerHTML')
        f.write(elem.encode('utf8')+'\n')
        print elem
    iterator+=30
    driver.get(members+str(iterator))
    time.sleep(1)

driver.quit()

Понравилась статья? Поделиться с друзьями: