@@ -71,7 +71,8 @@ def get_page(self, link):
7171 content = self .ua .get (link )
7272 return Page (
7373 self .get_page_player (content ),
74- self .get_video_lists (content , link )
74+ self .get_video_lists (content , link ),
75+ self .get_filter_lists (content , link )
7576 )
7677
7778 def get_page_player (self , content ):
@@ -144,6 +145,34 @@ def get_items_from_wrapper(self, content, src_link):
144145 list .append (Item (title .decode ('utf-8' ), link , image_url ))
145146 return list
146147
148+ def get_filter_lists (self , content , src_link ):
149+ list = []
150+ before_wrapper_re = re .compile ('(.*)<div class="loading-wrapper">' , re .S )
151+ before_content = before_wrapper_re .search (content ).group (1 )
152+
153+ filter_wrappers = re .split ('<li class="hamburger-parent[^"]*">' , before_content )
154+
155+ title_re = re .compile ('<span data-jnp="[^"]+" class="hamburger-toggler">([^<]+)</span>' )
156+ for filter_wrapper in filter_wrappers :
157+ title_result = title_re .search (filter_wrapper )
158+ if title_result is None : continue
159+ title = title_result .group (1 )
160+ items = self .get_filter_items (filter_wrapper , src_link )
161+ if (len (items ) <= 0 ): continue
162+ list .append (PageVideoList (title .decode ('utf-8' ), None , None , items ))
163+ return list
164+
165+ def get_filter_items (self , content , src_link ):
166+ list = []
167+
168+ filter_item_re = re .compile ('<li>[^<]*<a class="tdi" href="([^"]+)"[^>]*>([^<]+)</a>[^<]*</li>' , re .S )
169+ for raw_link , raw_title in filter_item_re .findall (content ):
170+ link = self .make_full_link (raw_link , src_link )
171+ title = self .strip_tags (raw_title )
172+ list .append (Item (title .decode ('utf-8' ), link ))
173+
174+ return list
175+
147176 def make_full_link (self , target_link , src_link ):
148177 if target_link is None :
149178 return None
@@ -169,8 +198,9 @@ def strip_tags(self, string):
169198 return result .strip ()
170199
171200class Page :
172- def __init__ (self , player = None , video_lists = []):
201+ def __init__ (self , player = None , video_lists = [], filter_lists = [] ):
173202 self .video_lists = video_lists
203+ self .filter_lists = filter_lists
174204 self .player = player
175205
176206class PageVideoList :
0 commit comments