# coding=utf-8 # !/python import sys import requests from bs4 import BeautifulSoup import re from base.spider import Spider sys.path.append('..') xurl = "https://kb11.adultporna-av1sim111.xyz" headerx = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36' } class Spider(Spider): global xurl global headerx def getName(self): return "首页" def init(self, extend): pass def isVideoFormat(self, url): pass def manualVideoCheck(self): pass def homeVideoContent(self): videos = [] try: res = requests.get(xurl + '/show/30/', headers=headerx) res.encoding = "utf-8" res = res.text doc = BeautifulSoup(res, "html.parser") vodss = doc.find('ul', class_='row row-space8 row-m-space8') vods = vodss.find_all('li') for vod in vods: name = vod.select_one('section a')['title'] id = vod.select_one('section a')['href'] remarks = vod.select_one('section a span small').text pic = vod.select_one('section a img')['src'] video = { "vod_id": id, "vod_name": name, "vod_pic": pic, "vod_remarks": remarks } videos.append(video) except: pass result = {'list': videos} return result def homeContent(self, filter): res = requests.get(xurl + '/zzzz', headers=headerx) res.encoding = "utf-8" res = res.text doc = BeautifulSoup(res, "html.parser") result = {} result['class'] = [] vodss = doc.find_all('dd') result['class'].append({'type_id': '/t/86', 'type_name': '女优'}) result['class'].append({'type_id': '/t/141', 'type_name': '日本番號'}) result['class'].append({'type_id': '/t/1', 'type_name': '日本有码'}) result['class'].append({'type_id': '/t/5', 'type_name': '日本无码'}) result['class'].append({'type_id': '/t/32', 'type_name': '日本巨乳无码'}) result['class'].append({'type_id': '/t/34', 'type_name': '日本人妻无码'}) result['class'].append({'type_id': '/t/35', 'type_name': '日本制服无码'}) result['class'].append({'type_id': '/t/223', 'type_name': '日本乱伦无码'}) result['class'].append({'type_id': '/t/224', 'type_name': '日本强奸无码'}) result['class'].append({'type_id': '/t/36', 'type_name': '日本丝袜美腿'}) result['class'].append({'type_id': '/t/13', 'type_name': '日本中文字幕'}) result['class'].append({'type_id': '/t/53', 'type_name': '日本绝美少女'}) result['class'].append({'type_id': '/t/6', 'type_name': '日本强奸乱伦'}) result['class'].append({'type_id': '/t/7', 'type_name': '日本巨乳'}) result['class'].append({'type_id': '/t/9', 'type_name': '日本制服诱惑'}) result['class'].append({'type_id': '/t/11', 'type_name': '日本调教'}) result['class'].append({'type_id': '/t/58', 'type_name': '日本口爆'}) result['class'].append({'type_id': '/t/30', 'type_name': '欧美'}) result['class'].append({'type_id': '/t/164', 'type_name': '成人动漫'}) result['class'].append({'type_id': '/t/85', 'type_name': '伦理电影'}) result['class'].append({'type_id': '/t/2', 'type_name': '国产传媒'}) result['class'].append({'type_id': '/t/163', 'type_name': '国产视频'}) result['class'].append({'type_id': '/t/67', 'type_name': '国产空姐模特'}) result['class'].append({'type_id': '/t/69', 'type_name': '国产学生'}) result['class'].append({'type_id': '/t/70', 'type_name': '国产人妻熟女'}) result['class'].append({'type_id': '/t/71', 'type_name': '国产乱伦'}) result['class'].append({'type_id': '/t/72', 'type_name': '国产自慰'}) result['class'].append({'type_id': '/t/73', 'type_name': '国产野合车震'}) result['class'].append({'type_id': '/t/75', 'type_name': '国产名人'}) result['class'].append({'type_id': '/t/74', 'type_name': '国产OL'}) result['class'].append({'type_id': '/t/18', 'type_name': '国产剧情'}) result['class'].append({'type_id': '/t/19', 'type_name': '国产偷怕'}) result['class'].append({'type_id': '/t/76', 'type_name': '国产网曝'}) result['class'].append({'type_id': '/t/227', 'type_name': '综合传媒'}) result['class'].append({'type_id': '/t/38', 'type_name': '麻豆合集'}) result['class'].append({'type_id': '/t/109', 'type_name': '葫芦影业'}) result['class'].append({'type_id': '/t/111', 'type_name': '天美传媒'}) result['class'].append({'type_id': '/t/112', 'type_name': '果冻传媒'}) result['class'].append({'type_id': '/t/131', 'type_name': '91制片厂'}) result['class'].append({'type_id': '/t/113', 'type_name': '蜜桃传媒'}) result['class'].append({'type_id': '/t/114', 'type_name': '精东影业'}) result['class'].append({'type_id': '/t/115', 'type_name': '皇家华人'}) result['class'].append({'type_id': '/t/116', 'type_name': 'SWAG'}) result['class'].append({'type_id': '/t/120', 'type_name': '兔子先生'}) result['class'].append({'type_id': '/t/122', 'type_name': 'PsychoPornTW'}) result['class'].append({'type_id': '/t/124', 'type_name': '微啪 & 陌丽影像传媒'}) result['class'].append({'type_id': '/t/125', 'type_name': '大象传媒'}) result['class'].append({'type_id': '/t/126', 'type_name': '乌鸦传媒'}) result['class'].append({'type_id': '/t/141', 'type_name': '日本番号'}) result['class'].append({'type_id': '/t/225', 'type_name': '综合番号'}) result['class'].append({'type_id': '/t/142', 'type_name': '200GANA'}) result['class'].append({'type_id': '/t/146', 'type_name': '259LUXU'}) result['class'].append({'type_id': '/t/147', 'type_name': '261ARA'}) result['class'].append({'type_id': '/t/148', 'type_name': '277DCV'}) result['class'].append({'type_id': '/t/143', 'type_name': '300MIUM'}) result['class'].append({'type_id': '/t/149', 'type_name': '300MAAN'}) result['class'].append({'type_id': '/t/150', 'type_name': '300NTK'}) result['class'].append({'type_id': '/t/152', 'type_name': '328HMDN'}) result['class'].append({'type_id': '/t/154', 'type_name': '336KNB'}) result['class'].append({'type_id': '/t/155', 'type_name': '348NTR'}) result['class'].append({'type_id': '/t/156', 'type_name': '390JAC'}) result['class'].append({'type_id': '/t/158', 'type_name': '428SUKE'}) result['class'].append({'type_id': '/t/181', 'type_name': 'AARM'}) result['class'].append({'type_id': '/t/180', 'type_name': 'ADN'}) result['class'].append({'type_id': '/t/185', 'type_name': 'ATID'}) result['class'].append({'type_id': '/t/192', 'type_name': 'DFDM'}) result['class'].append({'type_id': '/t/194', 'type_name': 'DLDSS'}) for vod in vodss: id = vod.find('a')['href'].rstrip("/") name = vod.find('a').text if not any(d['type_name'] == name for d in result['class']): result['class'].append({'type_id': id, 'type_name': name}) return result def categoryContent(self, cid, pg, filter, ext): result = {} videos = [] if pg == "" or pg == 1: url = xurl + cid else: url = xurl + cid + '-' + str(pg) res = requests.get(url=url, headers=headerx) res.encoding = "utf-8" res = res.text doc = BeautifulSoup(res, "html.parser") vodss = doc.find('ul', class_='row row-space8 row-m-space8') vods = vodss.find_all('li') for vod in vods: name = vod.select_one('section a')['title'] id = vod.select_one('section a')['href'] remarks = vod.select_one('section a span small').text pic = vod.select_one('section a img')['src'] video = { "vod_id": id, "vod_name": name, "vod_pic": pic, "vod_remarks": remarks } videos.append(video) result['list'] = videos result['page'] = pg result['pagecount'] = 9999 result['limit'] = 90 result['total'] = 999999 return result def detailContent(self, ids): did = ids[0].replace("voddetail", "v") videos = [] result = {} res = requests.get(url=xurl + did, headers=headerx) res.encoding = "utf-8" res = res.text source_match = re.search(r'"","url":"(.*?)"', res) if source_match: purl = source_match.group(1).replace("\\", "") videos.append({ "vod_id": did, "vod_name": '', "vod_pic": "", "type_name": "", "vod_year": "", "vod_area": "", "vod_remarks": "", "vod_actor": "", "vod_director": "", "vod_content": "", "vod_play_from": '直链播放', "vod_play_url": purl }) result['list'] = videos return result def playerContent(self, flag, id, vipFlags): result = {} result["parse"] = 0 result["playUrl"] = '' result["url"] = id result["header"] = headerx return result def searchContent(self, key, quick): return self.searchContentPage(key, quick, '1') def searchContentPage(self, key, quick, page): result = {} header2 = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' } res = requests.get(xurl + '/s/page/' + str(page) + '/wd/' + key, headers=header2) res.encoding = "utf-8" res = res.text videos = [] doc = BeautifulSoup(res, "html.parser") vodss = doc.find('ul', class_='row row-space8 row-m-space8') vods = vodss.find_all('li') for vod in vods: name = vod.select_one('section a')['title'] id = vod.select_one('section a')['href'] remarks = vod.select_one('section a span small').text pic = vod.select_one('section a img')['src'] video = { "vod_id": id, "vod_name": name, "vod_pic": pic, "vod_remarks": remarks } videos.append(video) result['list'] = videos result['page'] = page result['pagecount'] = 9999 result['limit'] = 90 result['total'] = 999999 return result def localProxy(self, params): if params['type'] == "m3u8": return self.proxyM3u8(params) elif params['type'] == "media": return self.proxyMedia(params) elif params['type'] == "ts": return self.proxyTs(params) return None