forked from gil9red/SimplePyScripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathget_boormarks_readmanga.py
More file actions
75 lines (55 loc) · 3.26 KB
/
Copy pathget_boormarks_readmanga.py
File metadata and controls
75 lines (55 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
"""
Скрипт, используя логин и пароль, авторизовывается, после выводит список
манга, оставленных пользователем в закладках.
"""
__author__ = 'ipetrash'
from grab import Grab
import re
if __name__ == '__main__':
username = input("Логин: ")
password = input("Пароль: ")
g = Grab()
# Переходим на страницу входа
print("...Перехожу на страницу входа...")
g.go('http://grouple.ru/internal/auth/login')
# Заполняем формы логина и пароля
print("...Заполняем формы логина и пароля...")
g.set_input('j_username', username)
g.set_input('j_password', password)
# Отсылаю данные
print("...Отсылаю данные...")
g.submit()
# Вытаскиваем имя пользователя
print("...Получаю имя пользователя...")
user = g.doc.select('//a[@href="/private/index"]').text()
# Переход на страницу Закладки
print('...Перехожу на страницу "Закладки"...')
g.go('http://grouple.ru/private/bookmarks')
print("\nПользователь: {}".format(user))
# Запрос на получение всех закладок
TEMPLATE_BOOKMARKS = ('//div[@class="bookmarks-lists"]/table[starts-with(@class, "cTable bookmarks_")]'
'//tr[@class="bookmark-row"]')
# Общее количество заметок
print("\nЗакладки({}):".format(g.doc.select(TEMPLATE_BOOKMARKS).count()))
# Запрос на получение всех типов закладок
TEMPLATE_TYPE_BOOKMARK = '//div[@class="bookmarks-lists"]/table[starts-with(@class, "cTable bookmarks_")]'
type_bookmarks = g.doc.select(TEMPLATE_TYPE_BOOKMARK)
# Регулярка для вытаскивания из имени закладки нужное
# Например, из "Пока бросил (1)" будет вытащено: "Пока бросил"
regexp_bookmark = re.compile("(.+) \(.+\)")
# Перебор всех типов закладок
for tb in type_bookmarks:
bookmark = tb.select("tr/th")[1].text() # Имя закладки с "мусором"
# В полученной имени закладки, согласно шаблону регулярного выражения,
# вытаскивается первая группа:
# Например, из "Пока бросил (1)" будет вытащено: "Пока бросил"
bookmark = regexp_bookmark.search(bookmark).group(1)
print(' Закладка "{}":'.format(bookmark))
# Получение всех закладок данного типа
group_bookmarks = tb.select('tr[@class="bookmark-row"]')
# Перебор всех закладок данного типа
for bm in group_bookmarks:
href = bm.select("td/a").attr('href') # Ссылка на мангу
name = bm.select("td/a/text()").text() # Название манги
print(' "{}": {}'.format(name, href))
print()