diff --git "a/\343\200\220bilibili\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" "b/\343\200\220bilibili\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" index c06247e..a800d5e 100644 --- "a/\343\200\220bilibili\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" +++ "b/\343\200\220bilibili\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" @@ -108,11 +108,11 @@ def is_pixel_similar(self, image1, image2, x, y): # 阈值 允许误差 threshold = 10 # 对比 - if abs(c_pixel[0] - ic_pixel[0]) < threshold and \ - abs(c_pixel[1] - ic_pixel[1]) < threshold and \ - abs(c_pixel[2] - ic_pixel[2]) < threshold: - return True - return False + return ( + abs(c_pixel[0] - ic_pixel[0]) < threshold + and abs(c_pixel[1] - ic_pixel[1]) < threshold + and abs(c_pixel[2] - ic_pixel[2]) < threshold + ) def get_slice_gap(self, image1, image2): """获取缺口的偏移量 @@ -168,12 +168,7 @@ def get_track(self, distance): v = 0 while current < distance: - if current < mid: - # 加速度为正2 - a = 20 - else: - # 加速度为负3 - a = -30 + a = 20 if current < mid else -30 # 初速度v0 v0 = v # 当前速度v = v0 + at diff --git "a/\343\200\220bilibili\343\200\221\350\247\206\351\242\221\344\270\213\350\275\275/video_download.py" "b/\343\200\220bilibili\343\200\221\350\247\206\351\242\221\344\270\213\350\275\275/video_download.py" index cba8250..fea3607 100644 --- "a/\343\200\220bilibili\343\200\221\350\247\206\351\242\221\344\270\213\350\275\275/video_download.py" +++ "b/\343\200\220bilibili\343\200\221\350\247\206\351\242\221\344\270\213\350\275\275/video_download.py" @@ -48,9 +48,9 @@ def get_cid_list(self): if not title: title = video_title title = re.sub(r'[\/\\:*?"<>|]', '', title) # 替换为空的 - print('标题:' + title, 'ID', cid) + print(f'标题:{title}', 'ID', cid) page = str(item['page']) - start_url = start_url + "/?p=" + page + start_url = f"{start_url}/?p={page}" video_list = down.get_play_list(start_url, cid, quality) self.start_time = time.time() down.down_video(video_list, title, start_url, page) @@ -65,20 +65,19 @@ def get_play_list(start_url, cid, quality): """ entropy = 'rbMCKn@KuamXWlPMoJGsKcbiJKUfkPF_8dABscJntvqhRSETg' appkey, sec = ''.join([chr(ord(i) + 2) for i in entropy[::-1]]).split(':') - params = 'appkey=%s&cid=%s&otype=json&qn=%s&quality=%s&type=' % (appkey, cid, quality, quality) + params = f'appkey={appkey}&cid={cid}&otype=json&qn={quality}&quality={quality}&type=' chksum = hashlib.md5(bytes(params + sec, 'utf8')).hexdigest() - url_api = 'https://interface.bilibili.com/v2/playurl?%s&sign=%s' % (params, chksum) + url_api = f'https://interface.bilibili.com/v2/playurl?{params}&sign={chksum}' headers = { 'Referer': start_url, 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36' } html = requests.get(url_api, headers=headers).json() - video_list = [html['durl'][0]['url']] - return video_list + return [html['durl'][0]['url']] def schedule_cmd(self, blocknum, blocksize, totalsize): speed = (blocknum * blocksize) / (time.time() - self.start_time) - speed_str = " Speed: %s" % self.format_size(speed) + speed_str = f" Speed: {self.format_size(speed)}" recv_size = blocknum * blocksize # 设置下载进度条 @@ -95,7 +94,7 @@ def schedule(self, blocknum, blocksize, totalsize): """时间表 """ speed = (blocknum * blocksize) / (time.time() - self.start_time) - speed_str = " Speed: %s" % self.format_size(speed) + speed_str = f" Speed: {self.format_size(speed)}" recv_size = blocknum * blocksize # 设置下载进度条 @@ -118,23 +117,17 @@ def format_size(bytes): except: print("传入的字节格式不对") return "Error" - if kb >= 1024: - M = kb / 1024 - if M >= 1024: - G = M / 1024 - return "%.3fG" % (G) - else: - return "%.3fM" % (M) - else: + if kb < 1024: return "%.3fK" % (kb) + M = kb / 1024 + return "%.3fG" % (M / 1024) if M >= 1024 else "%.3fM" % (M) def down_video(self, video_list, title, start_url, page): """下载视频 """ - num = 1 print('正在下载请稍等...'.format(page)) current_video_path = os.path.join(sys.path[0], 'bilibili下载目录', title) # 当前目录作为下载目录 - for i in video_list: + for num, i in enumerate(video_list, start=1): opener = urllib.request.build_opener() # 请求头 opener.addheaders = [ @@ -154,13 +147,19 @@ def down_video(self, video_list, title, start_url, page): os.makedirs(current_video_path) # 开始下载 if len(video_list) > 1: - urllib.request.urlretrieve(url=i, - filename=os.path.join(current_video_path, r'{}-{}.mp4'.format(title, num)), - reporthook=self.schedule_cmd) + urllib.request.urlretrieve( + url=i, + filename=os.path.join( + current_video_path, f'{title}-{num}.mp4' + ), + reporthook=self.schedule_cmd, + ) else: - urllib.request.urlretrieve(url=i, filename=os.path.join(current_video_path, r'{}.mp4'.format(title)), - reporthook=self.schedule_cmd) - num += 1 + urllib.request.urlretrieve( + url=i, + filename=os.path.join(current_video_path, f'{title}.mp4'), + reporthook=self.schedule_cmd, + ) @staticmethod def combine_video(video_list, title): @@ -169,7 +168,7 @@ def combine_video(video_list, title): current_video_path = os.path.join(sys.path[0], 'bilibili_video', title) # 当前目录作为下载目录 if len(video_list) >= 2: # 视频大于一段才要合并 - print('下载完成,正在合并视频...' + title) + print(f'下载完成,正在合并视频...{title}') # 定义一个数组 L = [] # 访问 video 文件夹 (假设视频都放在这里面) @@ -187,12 +186,14 @@ def combine_video(video_list, title): # 拼接视频 final_clip = concatenate_videoclips(L) # 生成目标视频文件 - final_clip.to_videofile(os.path.join(root_dir, r'{}.mp4'.format(title)), fps=24, remove_temp=False) - print('视频合并完成' + title) + final_clip.to_videofile( + os.path.join(root_dir, f'{title}.mp4'), fps=24, remove_temp=False + ) + print(f'视频合并完成{title}') else: # 视频只有一段则直接打印下载完成 - print('视频合并完成:' + title) + print(f'视频合并完成:{title}') if __name__ == '__main__': diff --git "a/\343\200\220\345\217\214\350\211\262\347\220\203\343\200\221\345\244\264\345\245\226\345\210\206\345\270\203/main.py" "b/\343\200\220\345\217\214\350\211\262\347\220\203\343\200\221\345\244\264\345\245\226\345\210\206\345\270\203/main.py" index f5c191a..baeef67 100644 --- "a/\343\200\220\345\217\214\350\211\262\347\220\203\343\200\221\345\244\264\345\245\226\345\210\206\345\270\203/main.py" +++ "b/\343\200\220\345\217\214\350\211\262\347\220\203\343\200\221\345\244\264\345\245\226\345\210\206\345\270\203/main.py" @@ -38,10 +38,8 @@ def clean_data(self, data): 清洗数据 :return: """ - columns = [] - - for item in data.get('result'): - columns.append([ + columns = [ + [ item.get('code'), item.get('date'), item.get('week'), @@ -56,8 +54,9 @@ def clean_data(self, data): item.get('prizegrades')[1].get('typenum'), item.get('prizegrades')[2].get('typemoney'), item.get('prizegrades')[2].get('typenum'), - ]) - + ] + for item in data.get('result') + ] df = pd.DataFrame( columns, columns=["期数", "开奖日期", "星期数", "红球", "蓝球", "销售金额", "奖池", "中奖地区", "一等奖金", "一等奖人数", "二等奖金", "二等奖人数", "三等奖金", "三等奖人数"], # 指定列 @@ -79,8 +78,7 @@ def set_data(self, df): for i in df['中奖地区']: for addr in i.split(',')[:-1]: name, num = jieba.cut(addr[:-1]) - for n in range(int(num)): - cut_text.append(name) + cut_text.extend(name for _ in range(int(num))) print(" ".join(cut_text)) w = wordcloud.WordCloud(font_path=self.font, background_color="white", scale=4) diff --git "a/\343\200\220\345\243\201\347\272\270\343\200\221\347\276\216\345\245\263\345\243\201\347\272\270\344\270\213\350\275\275\345\231\250/bg_down.py" "b/\343\200\220\345\243\201\347\272\270\343\200\221\347\276\216\345\245\263\345\243\201\347\272\270\344\270\213\350\275\275\345\231\250/bg_down.py" index f684614..50be400 100644 --- "a/\343\200\220\345\243\201\347\272\270\343\200\221\347\276\216\345\245\263\345\243\201\347\272\270\344\270\213\350\275\275\345\231\250/bg_down.py" +++ "b/\343\200\220\345\243\201\347\272\270\343\200\221\347\276\216\345\245\263\345\243\201\347\272\270\344\270\213\350\275\275\345\231\250/bg_down.py" @@ -38,7 +38,7 @@ def down_load(self, file_url, file_full_name, now_photo_count, all_photo_count): all_photo_count), end=" ") # 下载完图片后获取图片扩展名,并为其增加扩展名 file_type = guess(file_full_name) - rename(file_full_name, file_full_name + '.' + file_type.extension) + rename(file_full_name, f'{file_full_name}.{file_type.extension}') def crawler_photo(self, type_id, photo_count): """ @@ -70,8 +70,8 @@ def crawler_photo(self, type_id, photo_count): for photo in photo_data: # 创建一个文件夹存放我们下载的图片 - if not exists('./' + str(type_id)): - makedirs('./' + str(type_id)) + if not exists(f'./{str(type_id)}'): + makedirs(f'./{str(type_id)}') # 准备下载的图片链接 file_url = photo['urls']['raw'] @@ -81,7 +81,7 @@ def crawler_photo(self, type_id, photo_count): file_name_only = file_name_only[len(file_name_only) - 1] # 准备保存到本地的完整路径 - file_full_name = './' + str(type_id) + '/' + file_name_only + file_full_name = f'./{str(type_id)}/{file_name_only}' # 开始下载图片 self.down_load(file_url, file_full_name, now_photo_count, all_photo_count) diff --git "a/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\227\247\347\211\210/parse_address_poi.py" "b/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\227\247\347\211\210/parse_address_poi.py" index 6b1b643..4b4d9ca 100644 --- "a/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\227\247\347\211\210/parse_address_poi.py" +++ "b/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\227\247\347\211\210/parse_address_poi.py" @@ -35,11 +35,9 @@ def decode(C): I = -1 H = 0 B = '' - J = len(C) G = ord(C[-1]) + J = len(C) - 1 C = C[:-1] - J -= 1 - for E in range(J): D = int(C[E], cha) - add if D >= add: @@ -51,7 +49,7 @@ def decode(C): A = int(B[:I], digi) F = int(B[I + 1:], digi) - L = (A + F - int(G)) / 2 + L = (A + F - G) / 2 K = float(F - L) / 100000 L = float(L) / 100000 return {'lng': L, 'lat': K} diff --git "a/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\227\247\347\211\210/parse_font_css.py" "b/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\227\247\347\211\210/parse_font_css.py" index f43290d..a33cf40 100644 --- "a/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\227\247\347\211\210/parse_font_css.py" +++ "b/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\227\247\347\211\210/parse_font_css.py" @@ -25,8 +25,7 @@ def get_css(self, html): if not svg_text_css: raise Exception("未找到链接") css_url = svg_text_css.group(1) - content = self.parse_url('https:' + css_url) - return content + return self.parse_url(f'https:{css_url}') # 获取定义偏移量的css文件后将结果以字典形式存储 @ staticmethod @@ -36,13 +35,7 @@ def get_css_offset(content_css): :return: {'xxx': ['192', '1550']} """ offset_item = re.findall(r'(\.[a-zA-Z0-9-]+)\{background:-(\d+).0px -(\d+).0px', content_css) - result = {} - for item in offset_item: - css_class = item[0][1:] - x_offset = item[1] - y_offset = item[2] - result[css_class] = [x_offset, y_offset] - return result + return {item[0][1:]: [item[1], item[2]] for item in offset_item} # 获取svg url组 @staticmethod @@ -50,7 +43,7 @@ def get_svg_url_dict(content_css): items = re.findall(r'span\[class\^="(.*?)"\].*?width: (\d+)px;.*?background-image: url\((.*?)\);', content_css) result = {} for code, size, url in items: - svg_list = [int(size), 'https:' + url] + svg_list = [int(size), f'https:{url}'] result[code] = svg_list return result @@ -100,7 +93,7 @@ def get_comment_num(self): svg_url = svg[1] new_num = self.parse_comment_css(svg_url, size, x_offset, y_offset) num = num * 10 + int(new_num) - print("餐馆: {}, 点评数: {}".format(shop_name, num)) + print(f"餐馆: {shop_name}, 点评数: {num}") if __name__ == '__main__': diff --git "a/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\234\200\346\226\260\347\211\2107\346\234\210/main.py" "b/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\234\200\346\226\260\347\211\2107\346\234\210/main.py" index 8ea3658..21d8069 100644 --- "a/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\234\200\346\226\260\347\211\2107\346\234\210/main.py" +++ "b/\343\200\220\345\244\247\344\274\227\347\202\271\350\257\204\343\200\221\345\255\227\344\275\223\345\217\215\347\210\254\343\200\201\345\235\220\346\240\207\345\217\215\347\210\254/\346\234\200\346\226\260\347\211\2107\346\234\210/main.py" @@ -50,8 +50,8 @@ def parse_ttf(self, code): result_list = self.r.hmget(HASH_TABLE, self.name_list) # 取出对应字库表(已修复bug) for result in result_list: json_data = json.loads(result) - if 'uni' + clean_code in json_data: - return json_data['uni' + clean_code] + if f'uni{clean_code}' in json_data: + return json_data[f'uni{clean_code}'] return False def add_hash(self, name, json_data): @@ -86,13 +86,13 @@ def install_ttf(self, ttf_list): # 已存在无需安装 continue # 安装字体 - with open(name + '.woff', 'wb+') as f: - f.write(requests.get('http://' + ttf_list[index]).content) # 下载写入 - font = TTFont(name + '.woff') + with open(f'{name}.woff', 'wb+') as f: + f.write(requests.get(f'http://{ttf_list[index]}').content) + font = TTFont(f'{name}.woff') uni_list = font['cmap'].tables[0].ttFont.getGlyphOrder() # 取出字形保存到uniList中 json_data = json.dumps(dict(zip(uni_list, self.FONT_LIST)), ensure_ascii=False) self.add_hash(name, json_data) - os.remove(name + '.woff') # 用完了删掉,节省资源占用 + os.remove(f'{name}.woff') @staticmethod def get_ttf_urls(text): diff --git "a/\343\200\220\345\244\251\347\234\274\346\237\245\343\200\221\345\255\227\344\275\223\345\212\240\345\257\206/tyc.py" "b/\343\200\220\345\244\251\347\234\274\346\237\245\343\200\221\345\255\227\344\275\223\345\212\240\345\257\206/tyc.py" index 7c9c576..07c299a 100644 --- "a/\343\200\220\345\244\251\347\234\274\346\237\245\343\200\221\345\255\227\344\275\223\345\212\240\345\257\206/tyc.py" +++ "b/\343\200\220\345\244\251\347\234\274\346\237\245\343\200\221\345\255\227\344\275\223\345\212\240\345\257\206/tyc.py" @@ -6,6 +6,7 @@ 从网页下载一个字体文件获取对应推导式,动态获取请自行拓展 """ + from fontTools.ttLib import TTFont import re @@ -15,7 +16,7 @@ xml = f.read() # 读取tyc-num.xml赋值给xml GlyphID = re.findall(r'', xml) # 获得对应关系 print(GlyphID) -GlyphIDNameLists = list(set([int(Gname) for Gid, Gname in GlyphID])) # 对应关系数量转换 +GlyphIDNameLists = list({int(Gname) for Gid, Gname in GlyphID}) print(GlyphIDNameLists) DigitalDicts = {str(i): str(GlyphIDNameLists[i - 2]) for i in range(2, len(GlyphIDNameLists)+2)} # 数字对应关系的字典推导式 print(DigitalDicts) diff --git "a/\343\200\220\346\212\226\351\237\263\343\200\221\346\227\240\346\260\264\345\215\260\350\247\206\351\242\221\350\247\243\346\236\220/parse.py" "b/\343\200\220\346\212\226\351\237\263\343\200\221\346\227\240\346\260\264\345\215\260\350\247\206\351\242\221\350\247\243\346\236\220/parse.py" index 4e6c253..33edd27 100644 --- "a/\343\200\220\346\212\226\351\237\263\343\200\221\346\227\240\346\260\264\345\215\260\350\247\206\351\242\221\350\247\243\346\236\220/parse.py" +++ "b/\343\200\220\346\212\226\351\237\263\343\200\221\346\227\240\346\260\264\345\215\260\350\247\206\351\242\221\350\247\243\346\236\220/parse.py" @@ -11,7 +11,7 @@ class ParseVideo: def __init__(self, share): path = self.get_url(share) - self.url = 'https://v.douyin.com/' + path + '/' + self.url = f'https://v.douyin.com/{path}/' self.headers = { 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1', } @@ -25,12 +25,13 @@ def get_url(share_url): def go_location(self): response = self.session.get(self.url, headers=self.headers) self.first_url = response.url - result = re.search(r'itemId: "(.*?)",[\s\S]*?uid: "(.*?)",[\s\S]*?authorName: "(.*?)",[\s\S]*?dytk: "(.*?)"', - response.text) - return result + return re.search( + r'itemId: "(.*?)",[\s\S]*?uid: "(.*?)",[\s\S]*?authorName: "(.*?)",[\s\S]*?dytk: "(.*?)"', + response.text, + ) def go_message(self, ret): - url = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=' + ret.group(1) + '&dytk=' + ret.group(4) + url = f'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={ret.group(1)}&dytk={ret.group(4)}' response = self.session.get(url, headers=self.headers) json_data = json.loads(response.text) user_id = ret.group(2) diff --git "a/\343\200\220\346\226\207\344\271\246\343\200\221app\346\237\245\350\257\242\346\216\245\345\217\243/main.py" "b/\343\200\220\346\226\207\344\271\246\343\200\221app\346\237\245\350\257\242\346\216\245\345\217\243/main.py" index d83e84f..847e1a2 100644 --- "a/\343\200\220\346\226\207\344\271\246\343\200\221app\346\237\245\350\257\242\346\216\245\345\217\243/main.py" +++ "b/\343\200\220\346\226\207\344\271\246\343\200\221app\346\237\245\350\257\242\346\216\245\345\217\243/main.py" @@ -23,8 +23,11 @@ def decrypt(self, data: str, key, iv) -> str: """3des 解密 """ data = self._base64decode(data) - _decrypt_result = pyDes.triple_des(key, pyDes.CBC, iv, None, pyDes.PAD_PKCS5).decrypt(data).decode('utf-8') - return _decrypt_result + return ( + pyDes.triple_des(key, pyDes.CBC, iv, None, pyDes.PAD_PKCS5) + .decrypt(data) + .decode('utf-8') + ) @staticmethod def _base64encode(data): @@ -58,12 +61,9 @@ def get_now_data(): def random_key(): """字符串 """ - random_str = '' base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789' length = len(base_str) - 1 - for i in range(24): - random_str += base_str[random.randint(0, length)] - return random_str + return ''.join(base_str[random.randint(0, length)] for _ in range(24)) @staticmethod def make_id(): @@ -97,7 +97,7 @@ def make_request(self): """生成明文的请求 data 内容 【这里需要根据实际需求修改请求内容】自行抓包研究!! """ - info = { + return { "id": self.make_id(), # 年月日时分秒 "command": "queryDoc", # 固定 "params": { @@ -107,13 +107,9 @@ def make_request(self): "pageSize": "20", "sortFields": "s50:desc", # 固定 "pageNum": "1", - "queryCondition": [{ - "key": "s8", - "value": "02" - }] # 关键词 + 搜索文本的类型; - } + "queryCondition": [{"key": "s8", "value": "02"}], # 关键词 + 搜索文本的类型; + }, } - return info def to_index(self): url = 'http://wenshuapp.court.gov.cn/appinterface/rest.q4w' diff --git "a/\343\200\220\346\267\230\345\256\235\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/auto_login_pyppeteer.py" "b/\343\200\220\346\267\230\345\256\235\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/auto_login_pyppeteer.py" index 5d74b82..a9ae7b5 100644 --- "a/\343\200\220\346\267\230\345\256\235\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/auto_login_pyppeteer.py" +++ "b/\343\200\220\346\267\230\345\256\235\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/auto_login_pyppeteer.py" @@ -78,9 +78,8 @@ async def mouse_slider(self): slider_again = await self.page.querySelectorEval('#nc_1__scale_text', 'node => node.textContent') if slider_again != '验证通过': return None - else: - print('验证通过') - return True + print('验证通过') + return True async def main(self, username_, pwd_): """登陆 diff --git "a/\343\200\220\346\267\230\345\256\235\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/login_for_sina.py" "b/\343\200\220\346\267\230\345\256\235\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/login_for_sina.py" index bdf73d2..20a9625 100644 --- "a/\343\200\220\346\267\230\345\256\235\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/login_for_sina.py" +++ "b/\343\200\220\346\267\230\345\256\235\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/login_for_sina.py" @@ -52,7 +52,7 @@ def run(self): taobao_name = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.site-nav-bd > ul.site-nav-bd-l > li#J_SiteNavLogin > div.site-nav-menu-hd > div.site-nav-user > a.site-nav-login-info-nick '))) # 登陆成功打印提示信息 - print("登陆成功:%s" % taobao_name.text) + print(f"登陆成功:{taobao_name.text}") except Exception: self.browser.close() print("登陆失败") diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\2205173\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\2205173\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" index d6d03be..1a0d552 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\2205173\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\2205173\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" @@ -29,7 +29,7 @@ def make_pwd(self, key): return ctx.call("make_js", self.pwd, key) def make_data(self, token, key): - data = { + return { 'userName': self.user, 'password': self.make_pwd(key), 'mobileNo': '', @@ -41,7 +41,6 @@ def make_data(self, token, key): '__validationToken__': token, '__validationDna__': '', } - return data def login(self): """start diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220GitHub\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220GitHub\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" index bea9708..7e339f3 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220GitHub\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220GitHub\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" @@ -63,9 +63,7 @@ def get_token(self): response = self.session.get(self.login_url, headers=self.headers) html = etree.HTML(response.content.decode()) - token = html.xpath('//input[@name="authenticity_token"]/@value')[0] - - return token + return html.xpath('//input[@name="authenticity_token"]/@value')[0] if __name__ == '__main__': diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220Glidedsky\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/login.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220Glidedsky\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/login.py" index 1a2e70d..62d632c 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220Glidedsky\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/login.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220Glidedsky\343\200\221\350\207\252\345\212\250\347\231\273\351\231\206/login.py" @@ -25,8 +25,7 @@ def __init__(self, user, pwd): def get_token(self): response = self.session.get(self.url, headers=self.headers) - _token = re.search(r'name="csrf-token" content="(.*?)">', response.text).group(1) - return _token + return re.search(r'name="csrf-token" content="(.*?)">', response.text).group(1) def login(self): data = {'_token': self.get_token(), 'email': self.user, 'password': self.pwd} diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220Python\345\212\240\345\257\206\345\272\223\343\200\221Demo/encryption.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220Python\345\212\240\345\257\206\345\272\223\343\200\221Demo/encryption.py" index 8fbc1b4..7c04303 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220Python\345\212\240\345\257\206\345\272\223\343\200\221Demo/encryption.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220Python\345\212\240\345\257\206\345\272\223\343\200\221Demo/encryption.py" @@ -74,8 +74,7 @@ def encrypt(self, _str): :return: bytes """ content = _str.encode('utf-8') - crypto = rsa.encrypt(content, self.pubkey) - return crypto + return rsa.encrypt(content, self.pubkey) def decrypt(self, text): """ @@ -83,8 +82,7 @@ def decrypt(self, text): :return: str """ content = rsa.decrypt(text, self.private_key) - con = content.decode('utf-8') - return con + return content.decode('utf-8') @staticmethod def save_pem(path_name, text): @@ -95,7 +93,7 @@ def save_pem(path_name, text): """ if "PEM" in path_name.upper(): path_name = path_name[:-4] - with open('{}.pem'.format(path_name), 'bw') as f: + with open(f'{path_name}.pem', 'bw') as f: f.write(text.save_pkcs1()) def read_pem(self, path_name, key_type): @@ -130,7 +128,7 @@ def check_sign(self, mess, result, pubkey=None): :param pubkey: :return: str """ - if None == pubkey: + if pubkey is None: pubkey = self.private_key try: result = rsa.verify(mess, result, pubkey) @@ -168,8 +166,7 @@ def encrypt(self, text): secret_key = self.key iv = self.iv k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5) - en = k.encrypt(text, padmode=PAD_PKCS5) - return en + return k.encrypt(text, padmode=PAD_PKCS5) def des_crypt(self, text): """ @@ -217,14 +214,12 @@ def encrypt(self, text): x = len(text) % 8 text = text + b'\0' * x de = DES3.new(self.key, self.mode) - cipher_text = de.encrypt(text) - return cipher_text + return de.encrypt(text) def decrypt(self, text): de = DES3.new(self.key, self.mode) plain_text = de.decrypt(text) - st = str(plain_text.decode("utf-8")).rstrip('\0') - return st + return str(plain_text.decode("utf-8")).rstrip('\0') def use_md5(test): @@ -248,8 +243,7 @@ def use_sha(text): if not isinstance(text, bytes): text = bytes(text, 'utf-8') sha = hashlib.sha1(text) - encrypts = sha.hexdigest() - return encrypts + return sha.hexdigest() if __name__ == '__main__': diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220steam\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220steam\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" index 98dfa37..74a9436 100755 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220steam\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220steam\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" @@ -43,8 +43,7 @@ def main(pwd, publickey_mod, publickey_exp): with open('execute.js', 'r', encoding='utf-8') as f: js = execjs.compile(f.read()) print('引擎', execjs.get().name) - sign = js.call('get_pwd', pwd, publickey_mod, publickey_exp) - return sign + return js.call('get_pwd', pwd, publickey_mod, publickey_exp) if __name__ == '__main__': diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\344\270\255\345\205\263\346\235\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\344\270\255\345\205\263\346\235\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" index 18bc4c6..563a8a5 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\344\270\255\345\205\263\346\235\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\344\270\255\345\205\263\346\235\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/login.py" @@ -62,20 +62,18 @@ def login(self, ipck): } response = requests.post(login_url, headers=self.headers, data=data, cookies=cookies) - msg = json.loads(response.content) - return msg + return json.loads(response.content) @staticmethod def make_md5(_str): """md5 生成 """ # 待加密信息 - text = _str + 'zol' + text = f'{_str}zol' # 创建md5对象 m = hashlib.md5() m.update(text.encode(encoding='utf-8')) - str_md5 = m.hexdigest() - return str_md5 + return m.hexdigest() def main(self): ipck = self.get_cookies() diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\244\251\347\277\274\343\200\221\347\231\273\345\275\225/login.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\244\251\347\277\274\343\200\221\347\231\273\345\275\225/login.py" index 96903ba..b94fc23 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\244\251\347\277\274\343\200\221\347\231\273\345\275\225/login.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\244\251\347\277\274\343\200\221\347\231\273\345\275\225/login.py" @@ -22,9 +22,7 @@ def login(username, password): response = session.get(url, headers={"User-Agent": UA}) ret = re.search(r'sign=(.*?)&appId=(.*?)¶s=(.*?)&format=(.*?)&clientType=(.*?)&version=(.*?)">', response.text) - url = 'https://open.e.189.cn/api/logbox/oauth2/unifyAccountLogin.do?sign=' + ret.group(1) + '&appId=' + ret.group( - 2) + '¶s=' + ret.group(3) + '&format=' + ret.group(4) + '&clientType=' + ret.group( - 5) + '&version=' + ret.group(6) + url = f'https://open.e.189.cn/api/logbox/oauth2/unifyAccountLogin.do?sign={ret.group(1)}&appId={ret.group(2)}¶s={ret.group(3)}&format={ret.group(4)}&clientType={ret.group(5)}&version={ret.group(6)}' response = session.get(url, headers={"User-Agent": UA}) text = response.text diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\245\275\350\216\261\345\256\242\343\200\221\345\217\202\346\225\260\350\247\243\346\236\220/holike.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\245\275\350\216\261\345\256\242\343\200\221\345\217\202\346\225\260\350\247\243\346\236\220/holike.py" index 3a4d0b9..686078a 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\245\275\350\216\261\345\256\242\343\200\221\345\217\202\346\225\260\350\247\243\346\236\220/holike.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\245\275\350\216\261\345\256\242\343\200\221\345\217\202\346\225\260\350\247\243\346\236\220/holike.py" @@ -28,8 +28,7 @@ def get_key_vi(self): response = requests.get(url.format(t=int(round(time.time() * 1000))), headers=headers) try: ret = re.search(r'return "(.*?)";', response.text).group(1) - _key = self.js.call('get_key_iv', ret) - return _key + return self.js.call('get_key_iv', ret) except AttributeError: print('获取key失败') diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\274\200\351\221\253\350\264\267\343\200\221\347\231\273\351\231\206\345\217\202\346\225\260\347\224\237\346\210\220/KaiXinDai.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\274\200\351\221\253\350\264\267\343\200\221\347\231\273\351\231\206\345\217\202\346\225\260\347\224\237\346\210\220/KaiXinDai.py" index eff0a87..58e3f8e 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\274\200\351\221\253\350\264\267\343\200\221\347\231\273\351\231\206\345\217\202\346\225\260\347\224\237\346\210\220/KaiXinDai.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\345\274\200\351\221\253\350\264\267\343\200\221\347\231\273\351\231\206\345\217\202\346\225\260\347\224\237\346\210\220/KaiXinDai.py" @@ -26,8 +26,7 @@ def get_dl(): } response = requests.get(url, headers=headers) etree = etree.HTML(response.text) - dlmy = etree.xpath('//*[@id="dlmy"]/@value')[0] - return dlmy + return etree.xpath('//*[@id="dlmy"]/@value')[0] def init_js(self): with open('encryp.js', 'r', encoding='utf-8') as f: diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\210\277\344\273\267\343\200\221\346\210\277\344\273\267\350\216\267\345\217\226/main.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\210\277\344\273\267\343\200\221\346\210\277\344\273\267\350\216\267\345\217\226/main.py" index 5351f78..892ad1a 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\210\277\344\273\267\343\200\221\346\210\277\344\273\267\350\216\267\345\217\226/main.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\210\277\344\273\267\343\200\221\346\210\277\344\273\267\350\216\267\345\217\226/main.py" @@ -37,7 +37,7 @@ def get_building(self, _id): 获取楼栋表 """ house_id = _id - key = '81$$@$$80$$@$$40$$@$$0$$@$$69$$@$$68$$@$$11$$@$$' + house_id + '$$@$$59$$@$$10$$@$$39$$@$$78$$@$$79$$@$$79$$@$$35$$@$$29$$@$$83$$@$$57$$@$$79$$@$$24$$@$$7$$@$$62$$@$$7$$@$$37$$@$$5$$@$$73$$@$$49$$@$$16$$@$$79$$@$$45$$@$$5' + key = f'81$$@$$80$$@$$40$$@$$0$$@$$69$$@$$68$$@$$11$$@$${house_id}$$@$$59$$@$$10$$@$$39$$@$$78$$@$$79$$@$$79$$@$$35$$@$$29$$@$$83$$@$$57$$@$$79$$@$$24$$@$$7$$@$$62$$@$$7$$@$$37$$@$$5$$@$$73$$@$$49$$@$$16$$@$$79$$@$$45$$@$$5' key = des3_encrypt(key) key = parse.quote(key) url = 'https://mobileapi.funi.com/m/community/building211.json?key={key}'.format(key=key) @@ -75,7 +75,7 @@ def getHousePrice(self, buildingId, _id): bId = buildingId houseId = _id unitId = '1' - key = '59$$@$$34$$@$$7$$@$$' + houseId + '$$@$$' + bId + '$$@$$87$$@$$30$$@$$18$$@$$8$$@$$' + unitId + '$$@$$82$$@$$14$$@$$53$$@$$51$$@$$51$$@$$70$$@$$50$$@$$3$$@$$57$$@$$72$$@$$39$$@$$95$$@$$4$$@$$43$$@$$37$$@$$94$$@$$35$$@$$38$$@$$79$$@$$96$$@$$' + key = f'59$$@$$34$$@$$7$$@$${houseId}$$@$${bId}$$@$$87$$@$$30$$@$$18$$@$$8$$@$${unitId}$$@$$82$$@$$14$$@$$53$$@$$51$$@$$51$$@$$70$$@$$50$$@$$3$$@$$57$$@$$72$$@$$39$$@$$95$$@$$4$$@$$43$$@$$37$$@$$94$$@$$35$$@$$38$$@$$79$$@$$96$$@$$' key = make_str(key) # 这里需要重新处理 key = des3_encrypt(key) key = parse.quote(key) diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\210\277\344\273\267\343\200\221\346\210\277\344\273\267\350\216\267\345\217\226/util.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\210\277\344\273\267\343\200\221\346\210\277\344\273\267\350\216\267\345\217\226/util.py" index 59a4820..820c77f 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\210\277\344\273\267\343\200\221\346\210\277\344\273\267\350\216\267\345\217\226/util.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\210\277\344\273\267\343\200\221\346\210\277\344\273\267\350\216\267\345\217\226/util.py" @@ -29,8 +29,7 @@ def des3_decrypt(s): """ _str = base64.b64decode(s) k = triple_des(KEY, CBC, IV, pad=None, padmode=PAD_PKCS5) - en = k.decrypt(_str, padmode=PAD_PKCS5).decode('utf-8') - return en + return k.decrypt(_str, padmode=PAD_PKCS5).decode('utf-8') def decrypt_str(s): @@ -38,10 +37,12 @@ def decrypt_str(s): content = info[:-6] hIndex = base64.b64decode(info[-6:].replace("==", "")).decode().split("_") content2 = content[int(hIndex[0]):] - txt = base64.b64decode( - content2[: len(content2)-int(hIndex[1])][::-1] - ).decode('utf-8').replace("##", "").replace("{@mk7}", "") - return txt + return ( + base64.b64decode(content2[: len(content2) - int(hIndex[1])][::-1]) + .decode('utf-8') + .replace("##", "") + .replace("{@mk7}", "") + ) def make_str(enB): @@ -54,9 +55,7 @@ def make_str(enB): sumResult = Long.valueOf(sumResult.longValue() + ((long) item)); } """ - count = 0 - for i in enB: - count += ord(i) + count = sum(ord(i) for i in enB) # print('合', count) # 每个字符的 Ascii 码的总和 p = count % len(enB) n = 1 @@ -76,7 +75,7 @@ def rep(source, index, rep_str): 复写的java层字符转换方法 :return: """ - str1 = source[0: index] + str1 = source[:index] return str1 + rep_str + source[index + 1:] diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\226\260\346\265\252\345\276\256\345\215\232\343\200\221\345\257\206\347\240\201\350\247\243\345\257\206/main.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\226\260\346\265\252\345\276\256\345\215\232\343\200\221\345\257\206\347\240\201\350\247\243\345\257\206/main.py" index 334c87f..397fb14 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\226\260\346\265\252\345\276\256\345\215\232\343\200\221\345\257\206\347\240\201\350\247\243\345\257\206/main.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\226\260\346\265\252\345\276\256\345\215\232\343\200\221\345\257\206\347\240\201\350\247\243\345\257\206/main.py" @@ -46,8 +46,7 @@ def main(pwd): print('引擎', execjs.get().name) publickey, time, nonce = Get_parameters() - sign = js.call('get_up', pwd, publickey, time, nonce) - return sign + return js.call('get_up', pwd, publickey, time, nonce) if __name__ == '__main__': diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\230\223\351\200\232\350\264\267\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\230\223\351\200\232\350\264\267\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" index ed76340..6242457 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\230\223\351\200\232\350\264\267\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\230\223\351\200\232\350\264\267\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" @@ -24,15 +24,13 @@ def make_pwd(pwd): return ctx.call("make_js", pwd) def make_data(self): - data = { + return { 'loginName': self.user, 'check': 'on', 'next': 'null', 'password': self.make_pwd(self.pwd), } - return data - def login(self): data = self.make_data() response = requests.post(self.url, data=data) diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\261\275\350\275\246\344\271\213\345\256\266\343\200\221\345\217\202\346\225\260\350\247\243\345\257\206/main.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\261\275\350\275\246\344\271\213\345\256\266\343\200\221\345\217\202\346\225\260\350\247\243\345\257\206/main.py" index 2704472..1ab9540 100755 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\261\275\350\275\246\344\271\213\345\256\266\343\200\221\345\217\202\346\225\260\350\247\243\345\257\206/main.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\261\275\350\275\246\344\271\213\345\256\266\343\200\221\345\217\202\346\225\260\350\247\243\345\257\206/main.py" @@ -15,8 +15,7 @@ def main(pwd): print('引擎', execjs.get().name) - sign = js.call('hex_md5', pwd) - return sign + return js.call('hex_md5', pwd) if __name__ == '__main__': diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\273\241\347\272\247\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\273\241\347\272\247\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" index daeb6ae..a2301d4 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\273\241\347\272\247\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\346\273\241\347\272\247\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/auto_login.py" @@ -34,12 +34,11 @@ def make_pwd(self): return cipher_text.decode() def make_data(self): - data = { + return { 'account': self.user, 'password': self.make_pwd(), - 'returnUrl': '/' + 'returnUrl': '/', } - return data def login(self): """start diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221wap\347\253\257sig\347\224\237\346\210\220/make_sig.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221wap\347\253\257sig\347\224\237\346\210\220/make_sig.py" index e3c8ba0..9c3888e 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221wap\347\253\257sig\347\224\237\346\210\220/make_sig.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221wap\347\253\257sig\347\224\237\346\210\220/make_sig.py" @@ -8,13 +8,14 @@ 需要 V8 引擎! """ + import execjs import os print(execjs.get().name) -with open(os.path.dirname(__file__) + '/v3_update.js') as f: +with open(f'{os.path.dirname(__file__)}/v3_update.js') as f: js = execjs.compile(f.read()) diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221\347\275\221\351\241\265\346\211\276\345\233\236\345\257\206\347\240\201/demo.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221\347\275\221\351\241\265\346\211\276\345\233\236\345\257\206\347\240\201/demo.py" index 5786a4c..2788455 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221\347\275\221\351\241\265\346\211\276\345\233\236\345\257\206\347\240\201/demo.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221\347\275\221\351\241\265\346\211\276\345\233\236\345\257\206\347\240\201/demo.py" @@ -36,7 +36,7 @@ def make_dv(self): with open("dv.js", "r", encoding="utf-8") as f: js_dv = execjs.compile(f.read()) _time = int(round(time.time() * 1000)) / 1000 - tk = "tk0.29" + str(random.randint(104771190122337, 904771190122337)) + str(_time * 1000) + tk = f"tk0.29{random.randint(104771190122337, 904771190122337)}{str(_time * 1000)}" self.dv = js_dv.call('MakeDv', _time, tk) print('【生成dv】', self.dv) @@ -69,8 +69,11 @@ def get_img(self, verify_str): 第三补 请求图片 :return: """ - response = requests.get('https://passport.baidu.com/cgi-bin/genimage?' + verify_str, cookies=self.cookies, - headers=headers_img) + response = requests.get( + f'https://passport.baidu.com/cgi-bin/genimage?{verify_str}', + cookies=self.cookies, + headers=headers_img, + ) with open('验证码.png', 'wb') as f: f.write(response.content) @@ -115,8 +118,7 @@ def get_phone(self, token): 第五步 获取电话 :return: """ - url = 'https://passport.baidu.com/v2/sapi/authwidgetverify?authtoken=' + parse.quote( - token) + '&type=&jsonp=1&apiver=v3&verifychannel=&action=getapi&vcode=&questionAndAnswer=&needsid=&rsakey=&countrycode=&u=https%3A%2F%2Fpassport.qatest.baidu.com%2F%3Fgetpassresetpwd&tpl=&winsdk=&authAction=&callback=bd__cbs__oeq73u' + url = f'https://passport.baidu.com/v2/sapi/authwidgetverify?authtoken={parse.quote(token)}&type=&jsonp=1&apiver=v3&verifychannel=&action=getapi&vcode=&questionAndAnswer=&needsid=&rsakey=&countrycode=&u=https%3A%2F%2Fpassport.qatest.baidu.com%2F%3Fgetpassresetpwd&tpl=&winsdk=&authAction=&callback=bd__cbs__oeq73u' response = requests.get(url, cookies=self.cookies, headers=headers_get_phone) text = response.content.decode("utf-8") if '系统繁忙' in text: diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221\347\277\273\350\257\221/translation.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221\347\277\273\350\257\221/translation.py" index bc6636e..118f7d5 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221\347\277\273\350\257\221/translation.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\343\200\221\347\277\273\350\257\221/translation.py" @@ -31,18 +31,16 @@ def make_sign(self): with open("translate.js", "r", encoding="utf-8") as f: self.context.execute(f.read()) - sign = self.context.a(self.query) - return sign + return self.context.a(self.query) def make_data(self, sign): - data = { + return { "query": self.query, "from": "en", "to": "zh", "token": "6f5c83b84d69ad3633abdf18abcb030d", - "sign": sign + "sign": sign, } - return data def get_content(self, data): response = requests.post( @@ -56,8 +54,7 @@ def get_content(self, data): def run(self): sign = self.make_sign() # 获取sign的值 data = self.make_data(sign) # 构建参数 - content = self.get_content(data) # 获取翻译内容 - return content + return self.get_content(data) if __name__ == '__main__': diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\350\241\227\346\213\215\343\200\221\345\233\276\347\211\207\344\270\213\350\275\275/get_image.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\350\241\227\346\213\215\343\200\221\345\233\276\347\211\207\344\270\213\350\275\275/get_image.py" index 6a62c46..39d25ff 100755 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\350\241\227\346\213\215\343\200\221\345\233\276\347\211\207\344\270\213\350\275\275/get_image.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\231\276\345\272\246\350\241\227\346\213\215\343\200\221\345\233\276\347\211\207\344\270\213\350\275\275/get_image.py" @@ -56,7 +56,7 @@ def getPage(offset): 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6735.400 QQBrowser/10.2.2328.400', 'X-Requested-With': 'XMLHttpRequest', } - url = 'https://image.baidu.com/search/acjson?' + urlencode(data) + url = f'https://image.baidu.com/search/acjson?{urlencode(data)}' try: res = requests.get(url, data=data, headers=headers) res.encoding = 'utf-8' # 网页信息编码 @@ -69,8 +69,7 @@ def getPage(offset): def getImage(json): '''解析网页数据并爬取所需的信息''' try: - data = json.get('data') - if data: + if data := json.get('data'): for item in data: yield { 'image': item.get('hoverURL'), @@ -86,8 +85,8 @@ def saveImage(item): m = item.get('title') local_image = item.get('image') # 获取图片的url image_url = local_image - urlretrieve(image_url, './pic/' + str(m) + '.jpg') - # print('p'+str(m) + '.jpg') + urlretrieve(image_url, f'./pic/{str(m)}.jpg') + # print('p'+str(m) + '.jpg') except: return None diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\251\272\344\270\255\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/spider_login.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\251\272\344\270\255\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/spider_login.py" index 55b0006..e20e11b 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\251\272\344\270\255\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/spider_login.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\251\272\344\270\255\347\275\221\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/spider_login.py" @@ -53,8 +53,7 @@ def get_dc(self): t=self.login_time) response = self.session.get(target, headers=self.headers) try: - dc = re.search(r'"dc":"(.*?)","kzmsg', response.text).group(1) - return dc + return re.search(r'"dc":"(.*?)","kzmsg', response.text).group(1) except AttributeError: print('dc 捕获失败') diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/create_food_token.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/create_food_token.py" index 2738db6..4fd04f5 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/create_food_token.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/create_food_token.py" @@ -30,10 +30,7 @@ def join_sign(self): @property def join_token(self): - str_json = {} - str_json['rId'] = 100900 - str_json['ver'] = '1.0.6' - str_json['ts'] = time.time() + str_json = {'rId': 100900, 'ver': '1.0.6', 'ts': time.time()} str_json['cts'] = time.time() + 110 str_json['brVD'] = [1920, 315] str_json['brR'] = [[1920, 1080], [1920, 1057], 24, 24] @@ -46,8 +43,7 @@ def join_token(self): str_json['sign'] = self.join_sign() token_decode = zlib.compress( bytes(json.dumps(str_json, separators=(',', ':'), ensure_ascii=False), encoding="utf8")) - token = str(base64.b64encode(token_decode), encoding="utf8") - return token + return str(base64.b64encode(token_decode), encoding="utf8") if __name__ == '__main__': diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_food_comments.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_food_comments.py" index de0cf24..d6f337a 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_food_comments.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_food_comments.py" @@ -40,7 +40,7 @@ def get_data(self): def get_originUrl(self): """编码解码 """ - return parse.quote_plus('http://www.meituan.com/meishi/' + self.shop_id + '/') + return parse.quote_plus(f'http://www.meituan.com/meishi/{self.shop_id}/') def parse(self, data): """解析数据 diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_food_info.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_food_info.py" index 0ee1933..38ecfea 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_food_info.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_food_info.py" @@ -27,9 +27,7 @@ def go_to_restaurant(self): url = self.target_url.format(p_id=self.restaurant_id) data = requests.get(url, headers=self.headers).text - # 提取有效区域 - data = re.search(r'12315消费争议(.*?)"dealList":', data, flags=re.DOTALL) - if data: + if data := re.search(r'12315消费争议(.*?)"dealList":', data, flags=re.DOTALL): self.parse_html(data.group(1)) else: print('访问失效') @@ -39,11 +37,10 @@ def parse_html(data): """解析数据 """ - # 细节信息 - detail_info = re.search( + if detail_info := re.search( r'"detailInfo":\{"poiId":(\d+),"name":"(.*?)","avgScore":(.*?),"address":"(.*?)","phone":"(.*?)","openTime":"(.*?)","extraInfos":\[(.*?)\],"hasFoodSafeInfo":(.*?),"longitude":(.*?),"latitude":(.*?),"avgPrice":(\d+),"brandId":(\d+),"brandName":"(.*?)",".*?photos":{"frontImgUrl":"(.*?)","albumImgUrls":(.*?)},"recommended":(.*?),"crumbNav":(.*?),"prefer', - data) - if detail_info: + data, + ): poiId = detail_info.group(1) name = detail_info.group(2) avgScore = detail_info.group(3) @@ -62,7 +59,7 @@ def parse_html(data): # 其他信息解析 if extraInfos: - items = json.loads("[" + extraInfos + "]") + items = json.loads(f"[{extraInfos}]") extraInfos = '' for item in items: extraInfos = item.get('text') + ' ' + extraInfos diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_hotel_comments.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_hotel_comments.py" index 6d783b4..cd5cc35 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_hotel_comments.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_hotel_comments.py" @@ -20,7 +20,7 @@ def __init__(self, hotel_id): def get_data(self): - url = 'https://ihotel.meituan.com/group/v1/poi/comment/' + self.hotel_id + '?' + url = f'https://ihotel.meituan.com/group/v1/poi/comment/{self.hotel_id}?' params = { 'sortType': 'default', 'noempty': '1', diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_hotel_info.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_hotel_info.py" index 4ab87e8..1226d7a 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_hotel_info.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_hotel_info.py" @@ -28,12 +28,12 @@ def go_to_hotel(self): now_day = time.strftime('%Y-%m-%d', time.localtime(time.time())) # 组合 get 地址 - url = 'https://hotel.meituan.com/' + self.p_id + '/?ci=' + now_day + '&co=' + now_day + url = f'https://hotel.meituan.com/{self.p_id}/?ci={now_day}&co={now_day}' data = requests.get(url, headers=self.headers).content.decode('utf-8') - # 提取有效区域 - info = re.search(r'window.__INITIAL_STATE__=(.*?)', data, flags=re.DOTALL) - if info: + if info := re.search( + r'window.__INITIAL_STATE__=(.*?)', data, flags=re.DOTALL + ): info_dict = json.loads(info.group(1).strip()[:-1]) self.parse_html(info_dict) else: diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_play_areas.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_play_areas.py" index e28d672..40bce3d 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_play_areas.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_play_areas.py" @@ -31,8 +31,10 @@ def parse(data, url): """解析数据 """ py_dict = {} - text = re.search(r'"city":{"id":(.*?),"name":"(.*?)","pinyin".*?"area":(.*?),"category":', data) - if text: + if text := re.search( + r'"city":{"id":(.*?),"name":"(.*?)","pinyin".*?"area":(.*?),"category":', + data, + ): py_dict = {'城市': text.group(2), '城市ID': text.group(1)} dict_info = json.loads(text.group(3)).get('children') # 提取区域信息 py_dict['区'] = [] @@ -41,14 +43,20 @@ def parse(data, url): if node.get('name') == '推荐商圈': continue # 推荐商圈过滤 # 二级区域 - district = {'区名': node.get('name'), '区ID': node.get('id'), - '区链接': url + 'b' + str(node.get('id')) + '/'} + district = { + '区名': node.get('name'), + '区ID': node.get('id'), + '区链接': f'{url}b' + str(node.get('id')) + '/', + } if node.get('children'): district['街道'] = [] # 三级区域 for i in node.get('children'): - area = {'街道名': i.get('name'), '街道ID': i.get('id'), - '街道链接': url + 'b' + str(i.get('id')) + '/'} + area = { + '街道名': i.get('name'), + '街道ID': i.get('id'), + '街道链接': f'{url}b' + str(i.get('id')) + '/', + } district['街道'].append(area) py_dict['区'].append(district) diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_play_info.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_play_info.py" index 52686de..3a8dca6 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_play_info.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\347\276\216\345\233\242\343\200\221\346\225\260\346\215\256\350\247\243\346\236\220\343\200\201token\347\224\237\346\210\220/parse_play_info.py" @@ -29,9 +29,9 @@ def go_to_restaurant(self): url = self.target_url.format(p_id=self.restaurant_id) data = requests.get(url, headers=self.headers).text - # 提取有效区域 - data = re.search(r'"params":{"poiInfo":(.*?)},"fallbackPara', data, flags=re.DOTALL) - if data: + if data := re.search( + r'"params":{"poiInfo":(.*?)},"fallbackPara', data, flags=re.DOTALL + ): self.parse_html(json.loads(data.group(1))) else: print('访问失效') @@ -54,10 +54,8 @@ def parse_html(self, data): print('纬度', data.get('lat')) print('类型', data.get('breadCrumbNavDTOList')[2].get('title')[len(data.get('cityName')):]) - albums = [] images = data.get('albumDTOList') - for node in images: - albums.append(node.get('url')) + albums = [node.get('url') for node in images] print('相册', albums) diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\350\257\225\345\256\242\350\201\224\347\233\237\343\200\221\347\231\273\345\275\225/login.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\350\257\225\345\256\242\350\201\224\347\233\237\343\200\221\347\231\273\345\275\225/login.py" index 80d9e8f..94bd3a8 100755 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\350\257\225\345\256\242\350\201\224\347\233\237\343\200\221\347\231\273\345\275\225/login.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\350\257\225\345\256\242\350\201\224\347\233\237\343\200\221\347\231\273\345\275\225/login.py" @@ -18,8 +18,7 @@ def main(pwd): js = execjs.compile(f.read()) print('引擎', execjs.get().name) - sign = js.call('get_pwd', pwd) - return sign + return js.call('get_pwd', pwd) def login(sign_pwd, username): diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\350\260\267\351\233\250\343\200\221\346\225\260\345\255\227\350\247\243\345\257\206/GuYu.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\350\260\267\351\233\250\343\200\221\346\225\260\345\255\227\350\247\243\345\257\206/GuYu.py" index d7680d3..f196511 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\350\260\267\351\233\250\343\200\221\346\225\260\345\255\227\350\247\243\345\257\206/GuYu.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\350\260\267\351\233\250\343\200\221\346\225\260\345\255\227\350\247\243\345\257\206/GuYu.py" @@ -47,9 +47,7 @@ def get_wo(self): print(self._list) def parse(self, number): - _str = '' - for num in number: - _str += str(self._list[int(num)]) + _str = ''.join(str(self._list[int(num)]) for num in number) print('最终展示字', int(_str)) diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\351\200\227\346\270\270\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/douyou.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\351\200\227\346\270\270\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/douyou.py" index c6d5286..79f8160 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\351\200\227\346\270\270\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/douyou.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\351\200\227\346\270\270\343\200\221\350\207\252\345\212\250\347\231\273\345\275\225/douyou.py" @@ -25,8 +25,7 @@ def make_password(self): nonce, ts = self.get_token() with open("encryp.js", "r", encoding="utf-8") as f: self.context.execute(f.read()) - pwd_hash = self.context.get_value(self.password, nonce, ts) - return pwd_hash # 打印加密之后的密码 + return self.context.get_value(self.password, nonce, ts) except: print('获取token失败') diff --git "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\351\207\221\351\200\270\347\224\265\345\275\261\343\200\221\350\207\252\345\212\250\346\263\250\345\206\214/register.py" "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\351\207\221\351\200\270\347\224\265\345\275\261\343\200\221\350\207\252\345\212\250\346\263\250\345\206\214/register.py" index 9edf5a3..03a41e5 100644 --- "a/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\351\207\221\351\200\270\347\224\265\345\275\261\343\200\221\350\207\252\345\212\250\346\263\250\345\206\214/register.py" +++ "b/\345\205\266\344\273\226\345\256\236\346\210\230/\343\200\220\351\207\221\351\200\270\347\224\265\345\275\261\343\200\221\350\207\252\345\212\250\346\263\250\345\206\214/register.py" @@ -23,8 +23,7 @@ def js_make(json_data): with open('encryp.js', 'r', encoding='utf-8') as f: js = execjs.compile(f.read()) try: - result = js.call("getEncryption", json_data) - return result + return js.call("getEncryption", json_data) except Exception: print('js 异常') diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Decode/translation.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Decode/translation.py" index 8b12495..f980c07 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Decode/translation.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Decode/translation.py" @@ -10,7 +10,7 @@ class TranslationMetaClass(type): """Meta 类""" - def __new__(mcs, name, bases, attrs): + def __new__(cls, name, bases, attrs): count = 0 attrs['__Decode__'] = {} for k, v in attrs.items(): @@ -18,7 +18,7 @@ def __new__(mcs, name, bases, attrs): count += 1 attrs['__Decode__'][str(count)] = k attrs['__TranslationFuncCount__'] = count - return type.__new__(mcs, name, bases, attrs) + return type.__new__(cls, name, bases, attrs) class Util(object): @@ -28,8 +28,8 @@ class Util(object): def _print(color, msg): """print color control """ - node = '\033[1;3{id}m{msg}\033[0m' if COLOR.get(color): + node = '\033[1;3{id}m{msg}\033[0m' print(node.format(id=COLOR.get(color), msg=msg)) else: print(msg) @@ -38,7 +38,7 @@ def msg(self): """print decode func """ for k in self.__Decode__: - self._print('yellow', str(k) + ': ' + self.__Decode__[k][7:]) + self._print('yellow', f'{str(k)}: {self.__Decode__[k][7:]}') self._print('yellow', 'r: 【重制】 e:【退出】') return input('请选择 >>>').lower() @@ -59,13 +59,13 @@ def main(self): while choice != 'e': if choice == 'r': # 重制 self._key, self.crumbs = self._copy, '' - self._print('blue', '重制成功: ' + self._key) + self._print('blue', f'重制成功: {self._key}') choice = self.msg() elif choice in self.__Decode__: # 选择是否在现有函数选项中 try: - eval("self.{}()".format(self.__Decode__[choice])) # 字符串转函数运行 + eval(f"self.{self.__Decode__[choice]}()") self._print('blue', self._key) - self.crumbs += self.__Decode__[choice][7:] + ' > ' + self.crumbs += f'{self.__Decode__[choice][7:]} > ' self._print('green', self.crumbs) choice = self.msg() except Exception: diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/OSS/push_to_oss.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/OSS/push_to_oss.py" index 238e21d..032705b 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/OSS/push_to_oss.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/OSS/push_to_oss.py" @@ -56,7 +56,7 @@ def get_len(): list_len = get_len() print('专辑总图数量', list_len) pool = ThreadPoolExecutor() # 设置线程池大小,默认等于cpu核数 - for i in range(list_len): + for _ in range(list_len): pool.submit(put_img) pool.shutdown(wait=True) diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/KDLProxyPool.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/KDLProxyPool.py" index 4b89ed7..a884057 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/KDLProxyPool.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/KDLProxyPool.py" @@ -77,7 +77,7 @@ def save_to_redis(self, proxy, expire): """ 推送到redis集合中 """ - print('代理 %s 推入redis集合' % proxy) + print(f'代理 {proxy} 推入redis集合') self.r.zadd('KDLProxy', {proxy: expire}) diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/XDLProxyPool.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/XDLProxyPool.py" index 751e96e..2fd3022 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/XDLProxyPool.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/XDLProxyPool.py" @@ -105,7 +105,7 @@ def save_to_redis(self, proxy, expire): """ 推送到redis集合中 """ - print('代理 %s 推入redis集合' % proxy) + print(f'代理 {proxy} 推入redis集合') self.r.zadd('XDLProxy', {proxy: expire}) diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/XDLProxyUseDemo.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/XDLProxyUseDemo.py" index 0a9ac94..528b6b5 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/XDLProxyUseDemo.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/XDLProxyUseDemo.py" @@ -29,7 +29,7 @@ def process_request(self, request, spider): # 此处对接redis data = r.zrangebyscore('XDLProxy', 1, 100, withscores=True) ip, score = random.choice(data) - request.meta['proxy'] = 'http://'+ip # 根据自己情况填写 + request.meta['proxy'] = f'http://{ip}' @@ -42,23 +42,21 @@ class DownloaderMiddleware(object): def process_response(self, request, response, spider): # 对代理ip进行清洗 proxy = request._meta.get('proxy') - if not response.status == 200: + if response.status != 200: print('IP访问失败') if proxy: proxy = proxy[proxy.find('/')+2:] # 提取当此访问proxy r.zincrby('XDLProxy', -1, proxy) # redis 命令修改 - else: - if proxy: - proxy = proxy[proxy.find('/') + 2:] # 提取当此访问proxy - score = r.zscore('XDLProxy', proxy) # 取出分数 - if score < 20: - r.zincrby('XDLProxy', 1, proxy) # redis 新版本命令更改这样了 + elif proxy: + proxy = proxy[proxy.find('/') + 2:] # 提取当此访问proxy + score = r.zscore('XDLProxy', proxy) # 取出分数 + if score < 20: + r.zincrby('XDLProxy', 1, proxy) # redis 新版本命令更改这样了 return response def process_exception(self, request, exception, spider): # 可能由于IP质量问题无法访问超时 print('超时异常') - proxy = request._meta.get('proxy') - if proxy: + if proxy := request._meta.get('proxy'): proxy = proxy[proxy.find('/') + 2:] r.zincrby('XDLProxy', -1, proxy) # redis 新版本命令更改这样了 return request diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/ZhiMaProxyPool.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/ZhiMaProxyPool.py" index 4c9bcc5..ee186d0 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/ZhiMaProxyPool.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/ZhiMaProxyPool.py" @@ -47,7 +47,7 @@ def _init(self): key=self.key, local=address) response = requests.get(url=url) code = json.loads(response.text).get('code') - if code == 0 or code == 115: + if code in [0, 115]: print('\033[1;35m初始化成功,启动中稍等..\033[0m') else: print('初始化芝麻账号失败') @@ -67,14 +67,12 @@ def check_ip(self): score_str = str(int(node[1])) time_stamp = int(score_str[-10:]) if time_stamp-now_time <= 0: - print('代理过期删除', str(node[0])) + print('代理过期删除', node[0]) self.r.zrem('ZhiMaProxy', node[0]) if len(score_str[:-10]) == 0: flag = True # 删除 - else: - # 可能由于频率过快出现负数 - if int(node[1]) < 0: - flag = True # 删除 + elif int(node[1]) < 0: + flag = True # 删除 if flag: print('分数过低剔除') @@ -105,16 +103,19 @@ def parse(self, json_data): """ parse response json """ - count = 0 ret_dict = json.loads(json_data) if ret_dict.get('success'): nodes = ret_dict.get('data') + count = 0 for node in nodes: end_time = self.get_end_time(node.get('expire_time')) if not end_time: """该域名存活时间过短,已弃用""" continue - self.save_to_redis(node.get('ip') + ':' + str(node.get('port')), int('10' + str(end_time))) + self.save_to_redis( + node.get('ip') + ':' + str(node.get('port')), + int(f'10{str(end_time)}'), + ) count += 1 self.get_balance(count, len(nodes)) # get balance @@ -129,8 +130,7 @@ def get_end_time(self, parse_time): b = parse(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) results = (a - b).total_seconds() if results > self.ttl: - stamp = int(time.mktime(time.strptime(parse_time, "%Y-%m-%d %H:%M:%S"))) - return stamp + return int(time.mktime(time.strptime(parse_time, "%Y-%m-%d %H:%M:%S"))) else: return diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/ZhiMaProxyUseDemo.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/ZhiMaProxyUseDemo.py" index bbdadac..3778005 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/ZhiMaProxyUseDemo.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Proxy/ZhiMaProxyUseDemo.py" @@ -28,7 +28,7 @@ def process_request(self, request, spider): # 此处对接redis data = r.zrange('ZhiMaProxy', 0, -1, withscores=True) ip, score = random.choice(data) - request.meta['proxy'] = 'http://'+ip + request.meta['proxy'] = f'http://{ip}' @@ -56,8 +56,7 @@ def process_response(self, request, response, spider): def process_exception(self, request, exception, spider): # 可能由于IP质量问题无法访问超时,必须在这里捕获然后扣分 print('超时异常') - proxy = request._meta.get('proxy') - if proxy: + if proxy := request._meta.get('proxy'): proxy = proxy[proxy.find('/') + 2:] r.zincrby('ZhiMaProxy', -10000000000, proxy) # redis 新版本命令更改这样了 return request diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Register/MessageCode.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Register/MessageCode.py" index fec5136..483562b 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Register/MessageCode.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/Register/MessageCode.py" @@ -64,11 +64,10 @@ def get_balance(self): balance_api = 'http://api.fxhyd.cn/UserInterface.aspx?action=getaccountinfo&token={token}&format=1' target_url = balance_api.format(token=self.token) response = requests.get(target_url) - if response.status_code == 200: - state, data = response.text.split('|') - return '当前余额: %s 元' % json.loads(data).get('Balance') - else: + if response.status_code != 200: return '获取失败请检测账号' + state, data = response.text.split('|') + return f"当前余额: {json.loads(data).get('Balance')} 元" @ staticmethod def filter_info(message): @@ -84,18 +83,17 @@ def filter_info(message): async def get_node(self, session, phone): """接收短信 """ - for i in range(12): + for _ in range(12): await asyncio.sleep(5) node_api = 'http://api.fxhyd.cn/UserInterface.aspx?action=getsms&token={token}&itemid={itemid}&mobile={phone}&release=1×tamp={time}' target_url = node_api.format(token=self.token, itemid=self.project_code, phone=phone, time=time.time()) async with session.get(target_url) as response: message = await response.text() - rest = self.filter_info(message) - if rest: + if rest := self.filter_info(message): return phone + rest await self.join_black_list(session, phone) # 获取失败加入黑名单 - return '%s 短信获取失败' % phone + return f'{phone} 短信获取失败' async def fetch_phone(self, session): """获取手机 diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/proxies/proxies.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/proxies/proxies.py" index ec31b37..761184b 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/proxies/proxies.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/proxies/proxies.py" @@ -9,7 +9,9 @@ proxyServer = "http://http-dyn.abuyun.com:9020" -proxyAuth = "Basic " + base64.urlsafe_b64encode(bytes((PROXY_USER + ":" + PROXY_PASS), "ascii")).decode("utf8") +proxyAuth = "Basic " + base64.urlsafe_b64encode( + bytes(f"{PROXY_USER}:{PROXY_PASS}", "ascii") +).decode("utf8") class ProxyMiddleware(object): diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/random_UA/ua_random.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/random_UA/ua_random.py" index fd8a2d9..0fb92aa 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/random_UA/ua_random.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/random_UA/ua_random.py" @@ -12,7 +12,7 @@ class RandomUserAgentMiddleware(object): """ def __init__(self): - location = os.getcwd() + '/zok/random_UA/fake_useragent.json' + location = f'{os.getcwd()}/zok/random_UA/fake_useragent.json' self.agent = UserAgent(path=location) # 调用本地 ua池 # self.agent = UserAgent(verify_ssl=False) # self.agent = UserAgent(use_cache_server=False) diff --git "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/repetition/update_cache.py" "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/repetition/update_cache.py" index 990911a..36cd90a 100644 --- "a/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/repetition/update_cache.py" +++ "b/\345\216\237\345\210\233\347\210\254\350\231\253\345\267\245\345\205\267/zok/repetition/update_cache.py" @@ -34,10 +34,7 @@ def redis_exists(self, member, md5): :return: True or False """ print() - if self.r.sismember(member, md5): - return True - else: - return False + return bool(self.r.sismember(member, md5)) def save_redis(self, member, md5): self.r.sadd(member, md5) diff --git "a/\346\273\221\345\212\250\351\252\214\350\257\201\347\240\201/\343\200\220w3c\343\200\221\346\273\221\345\235\227\351\252\214\350\257\201/w3c.py" "b/\346\273\221\345\212\250\351\252\214\350\257\201\347\240\201/\343\200\220w3c\343\200\221\346\273\221\345\235\227\351\252\214\350\257\201/w3c.py" index a1759d3..4071c99 100644 --- "a/\346\273\221\345\212\250\351\252\214\350\257\201\347\240\201/\343\200\220w3c\343\200\221\346\273\221\345\235\227\351\252\214\350\257\201/w3c.py" +++ "b/\346\273\221\345\212\250\351\252\214\350\257\201\347\240\201/\343\200\220w3c\343\200\221\346\273\221\345\235\227\351\252\214\350\257\201/w3c.py" @@ -46,7 +46,7 @@ def get_img(self): img_cha = self.split_img(bg_img, css_list) xy = None # 识别结果 for n in range(4): - full_image = Image.open('img/'+str(n)+'.png') + full_image = Image.open(f'img/{str(n)}.png') # 获取缺口位置 xy = self.get_distance(img_cha, full_image) if xy and xy > 0: @@ -90,13 +90,13 @@ def is_pixel_equal(bg_image, full_image, x, y): # 设置一个判定值,像素值之差超过判定值则认为该像素不相同 threshold = 1 # 可根据识别效果调整 # 判断像素的各个颜色之差,abs()用于取绝对值 - if (abs(bg_pixel[0] - full_pixel[0] < threshold) and abs(bg_pixel[1] - full_pixel[1] < threshold) and abs( - bg_pixel[2] - full_pixel[2] < threshold)): - # 如果差值在判断值之内,返回是相同像素 - return True - else: - # 如果差值在判断值之外,返回不是相同像素 - return False + return bool( + ( + abs(bg_pixel[0] - full_pixel[0] < threshold) + and abs(bg_pixel[1] - full_pixel[1] < threshold) + and abs(bg_pixel[2] - full_pixel[2] < threshold) + ) + ) def split_img(self, bg_img, css_list): """图片还原""" @@ -121,9 +121,7 @@ def split_img(self, bg_img, css_list): def check_code(self): """滑块认证""" - point = self.get_img() - - if point: + if point := self.get_img(): print('\033[1;34m识别成功: 缺口位置 x: %s \033[0m' % point) print('\033[1;36m提交数据中...\033[0m') result = self.session.post(self.check, data={'point': point}, headers=self.headers) diff --git "a/\346\273\221\345\212\250\351\252\214\350\257\201\347\240\201/\343\200\220\350\205\276\350\256\257\343\200\221\346\273\221\345\235\227\351\252\214\350\257\201/sel.py" "b/\346\273\221\345\212\250\351\252\214\350\257\201\347\240\201/\343\200\220\350\205\276\350\256\257\343\200\221\346\273\221\345\235\227\351\252\214\350\257\201/sel.py" index 961ecb3..5274ca6 100644 --- "a/\346\273\221\345\212\250\351\252\214\350\257\201\347\240\201/\343\200\220\350\205\276\350\256\257\343\200\221\346\273\221\345\235\227\351\252\214\350\257\201/sel.py" +++ "b/\346\273\221\345\212\250\351\252\214\350\257\201\347\240\201/\343\200\220\350\205\276\350\256\257\343\200\221\346\273\221\345\235\227\351\252\214\350\257\201/sel.py" @@ -108,12 +108,7 @@ def get_track(distance): distance += 10 # 先滑过一点,最后再反着滑动回来 # a = random.randint(1,3) while current < distance: - if current < mid: - # 加速度越小,单位时间的位移越小,模拟的轨迹就越多越详细 - a = random.randint(2, 4) # 加速运动 - else: - a = -random.randint(3, 5) # 减速运动 - + a = random.randint(2, 4) if current < mid else -random.randint(3, 5) # 初速度 v0 = v # 0.2秒时间内的位移 @@ -127,10 +122,8 @@ def get_track(distance): v = v0 + a * t # 反着滑动到大概准确位置 - for i in range(4): - tracks.append(-random.randint(2, 3)) - for i in range(4): - tracks.append(-random.randint(1, 3)) + tracks.extend(-random.randint(2, 3) for _ in range(4)) + tracks.extend(-random.randint(1, 3) for _ in range(4)) return tracks def move_to(self, index): diff --git "a/\351\241\271\347\233\256/HouseScrapy/spiders/house.py" "b/\351\241\271\347\233\256/HouseScrapy/spiders/house.py" index 98af006..bdb4fd5 100644 --- "a/\351\241\271\347\233\256/HouseScrapy/spiders/house.py" +++ "b/\351\241\271\347\233\256/HouseScrapy/spiders/house.py" @@ -44,7 +44,11 @@ def parse_url(self, response): url = HOST + href[:href.find(';')] if ';' in href else HOST + href # 获取基础信息 - yield scrapy.Request(url + '/detail.htm', callback=self.parse_base, meta={'name': title, 'base_url': url}) + yield scrapy.Request( + f'{url}/detail.htm', + callback=self.parse_base, + meta={'name': title, 'base_url': url}, + ) def parse_base(self, response): """解析楼盘基础信息 @@ -66,8 +70,11 @@ def parse_base(self, response): base_url = response.meta.get('base_url') # 获取 最新动态 - yield scrapy.Request(base_url + '/news.htm', callback=self.parse_news, - meta={'base_url': base_url, 'data': data}) + yield scrapy.Request( + f'{base_url}/news.htm', + callback=self.parse_news, + meta={'base_url': base_url, 'data': data}, + ) def parse_news(self, response): """解析新闻 diff --git "a/\351\241\271\347\233\256/HouseScrapy/toolkits/make_ua.py" "b/\351\241\271\347\233\256/HouseScrapy/toolkits/make_ua.py" index 3aa46f4..10591fd 100644 --- "a/\351\241\271\347\233\256/HouseScrapy/toolkits/make_ua.py" +++ "b/\351\241\271\347\233\256/HouseScrapy/toolkits/make_ua.py" @@ -12,7 +12,7 @@ class RandomUserAgentMiddleware(object): """ def __init__(self): - location = os.getcwd() + '/toolkits/fake_useragent.json' + location = f'{os.getcwd()}/toolkits/fake_useragent.json' self.agent = UserAgent(path=location) # self.agent = UserAgent(verify_ssl=False) # self.agent = UserAgent(use_cache_server=False) diff --git "a/\351\241\271\347\233\256/HouseScrapy/toolkits/middlewares.py" "b/\351\241\271\347\233\256/HouseScrapy/toolkits/middlewares.py" index 9939d00..991e97f 100644 --- "a/\351\241\271\347\233\256/HouseScrapy/toolkits/middlewares.py" +++ "b/\351\241\271\347\233\256/HouseScrapy/toolkits/middlewares.py" @@ -32,8 +32,7 @@ def process_spider_output(self, response, result, spider): # it has processed the response. # Must return an iterable of Request, dict or Item objects. - for i in result: - yield i + yield from result def process_spider_exception(self, response, exception, spider): # Called when a spider or process_spider_input() method @@ -49,11 +48,10 @@ def process_start_requests(self, start_requests, spider): # that it doesn’t have a response associated. # Must return only requests (not items). - for r in start_requests: - yield r + yield from start_requests def spider_opened(self, spider): - spider.logger.info('Spider opened: %s' % spider.name) + spider.logger.info(f'Spider opened: {spider.name}') class HousescrapyDownloaderMiddleware(object): @@ -100,4 +98,4 @@ def process_exception(self, request, exception, spider): pass def spider_opened(self, spider): - spider.logger.info('Spider opened: %s' % spider.name) + spider.logger.info(f'Spider opened: {spider.name}') diff --git "a/\351\241\271\347\233\256/HouseScrapy/toolkits/proxies.py" "b/\351\241\271\347\233\256/HouseScrapy/toolkits/proxies.py" index 723d7c0..42cf277 100644 --- "a/\351\241\271\347\233\256/HouseScrapy/toolkits/proxies.py" +++ "b/\351\241\271\347\233\256/HouseScrapy/toolkits/proxies.py" @@ -9,7 +9,9 @@ proxyServer = "http://http-dyn.abuyun.com:9020" -proxyAuth = "Basic " + base64.urlsafe_b64encode(bytes((PROXY_USER + ":" + PROXY_PASS), "ascii")).decode("utf8") +proxyAuth = "Basic " + base64.urlsafe_b64encode( + bytes(f"{PROXY_USER}:{PROXY_PASS}", "ascii") +).decode("utf8") class ProxyMiddleware(object): diff --git "a/\351\241\271\347\233\256/HouseSpider/tool/toolkit.py" "b/\351\241\271\347\233\256/HouseSpider/tool/toolkit.py" index db3b248..c7c2b15 100644 --- "a/\351\241\271\347\233\256/HouseSpider/tool/toolkit.py" +++ "b/\351\241\271\347\233\256/HouseSpider/tool/toolkit.py" @@ -32,5 +32,6 @@ def int_time(*args, **kwargs): func() over_time = datetime.datetime.now() # 程序结束时间 total_time = (over_time-start_time).total_seconds() - print('程序耗时: %s 秒' % total_time) + print(f'程序耗时: {total_time} 秒') + return int_time diff --git "a/\351\241\271\347\233\256/MeiTuanArea/MeiTuanArea/middlewares.py" "b/\351\241\271\347\233\256/MeiTuanArea/MeiTuanArea/middlewares.py" index 9499be2..76b9ef0 100644 --- "a/\351\241\271\347\233\256/MeiTuanArea/MeiTuanArea/middlewares.py" +++ "b/\351\241\271\347\233\256/MeiTuanArea/MeiTuanArea/middlewares.py" @@ -32,8 +32,7 @@ def process_spider_output(self, response, result, spider): # it has processed the response. # Must return an iterable of Request, dict or Item objects. - for i in result: - yield i + yield from result def process_spider_exception(self, response, exception, spider): # Called when a spider or process_spider_input() method @@ -49,11 +48,10 @@ def process_start_requests(self, start_requests, spider): # that it doesn’t have a response associated. # Must return only requests (not items). - for r in start_requests: - yield r + yield from start_requests def spider_opened(self, spider): - spider.logger.info('Spider opened: %s' % spider.name) + spider.logger.info(f'Spider opened: {spider.name}') class MeituanareaDownloaderMiddleware(object): @@ -100,4 +98,4 @@ def process_exception(self, request, exception, spider): pass def spider_opened(self, spider): - spider.logger.info('Spider opened: %s' % spider.name) + spider.logger.info(f'Spider opened: {spider.name}') diff --git "a/\351\241\271\347\233\256/MeiTuanArea/MeiTuanArea/spiders/areas.py" "b/\351\241\271\347\233\256/MeiTuanArea/MeiTuanArea/spiders/areas.py" index 2702744..ae96b7f 100644 --- "a/\351\241\271\347\233\256/MeiTuanArea/MeiTuanArea/spiders/areas.py" +++ "b/\351\241\271\347\233\256/MeiTuanArea/MeiTuanArea/spiders/areas.py" @@ -72,17 +72,13 @@ def parse_area(self, response): subs = area.get('subAreas') # 判断是否有下级,有的区域么有下级了 - if len(subs) > 1: - item['haschild'] = 1 - else: - item['haschild'] = 0 - + item['haschild'] = 1 if len(subs) > 1 else 0 yield item # 解析 4 级 if len(subs) > 1: for sub in subs: - if not sub.get('name') == '全部': + if sub.get('name') != '全部': item['haschild'] = 0 item['type'] = 'address' item['id'] = sub.get('id')