From 5380344ddd35184adada0794b409737be7483d2e Mon Sep 17 00:00:00 2001 From: 3202307908 <3202307908@qq.com> Date: Fri, 9 May 2025 14:28:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 访问首页.py | 319 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 319 insertions(+) create mode 100644 访问首页.py diff --git a/访问首页.py b/访问首页.py new file mode 100644 index 0000000..fbfe754 --- /dev/null +++ b/访问首页.py @@ -0,0 +1,319 @@ +import re +import random +import requests +import pickle + +requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = 'DH+AESGCM:DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:!eNULL:!MD5' + + +def zhengchang_ua(i): + # return 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42' + if i == 0: + first_num = random.randint(55, 62) + third_num = random.randint(0, 3200) + fourth_num = random.randint(0, 140) + os_type = [ + '(Linux; Android 10; MI 9 Build/QKQ1.190825.002; wv)', + '(Linux; Android 8.1.0; PBCM30 Build/OPM1.171019.011; wv)', + '(Linux; Android 6.0; HUAWEI MLA-AL10 Build/HUAWEIMLA-AL10; wv)', + '(Linux; Android 6.0.1; OPPO A57t Build/MMB29M; wv)', + '(iPhone; CPU iPhone OS 10_3_3 like Mac OS X)', + '(Linux; U; Android 9; zh-cn; Redmi 7 Build/PKQ1.181021.001)', + '(Linux; Android 9; V1914A Build/PKQ1.181016.001; wv)', + '(Linux; U; Android 10; zh-CN; ALP-AL00 Build/HUAWEIALP-AL00)', + '(Linux; Android 10; VOG-TL00 Build/HUAWEIVOG-TL00; wv)', + '(Linux; Android 9; Nokia X7 Build/PPR1.180610.011; wv)', + '(Linux; Android 9.0; S5 Build/PKQ1.190319.001; wv)', + '(Linux; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10; wv)', + '(Linux; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10; wv)', + '(Linux; Android 9; Mi9 Pro 5G Build/PKQ1.190714.001; wv)', + '(iPhone; CPU iPhone OS 13_4 like Mac OS X)', '(Linux; Android 10; OXF-AN00 Build/HUAWEIOXF-AN00; wv)', + '(Linux; U; Android 9; zh-cn; V1814A Build/PKQ1.180819.001)', + '(Linux; U; Android 7.0; zh-cn; Redmi Note 4X Build/NRD90M)', + '(Linux; Android 9; RMX1991 Build/PKQ1.190630.001; wv)', + '(Linux; Android 10; JNY-AL10 Build/HUAWEIJNY-AL10; wv)', + '(Linux; Android 10; ELE-AL00 Build/HUAWEIELE-AL00; wv)', + '(Linux; Android 9; RMX1991 Build/PKQ1.190630.001; wv)', + '(Linux; U; Android 10; zh-cn; MI 8 Build/QKQ1.190828.002)', + '(Linux; Android 10; VCE-AL00 Build/HUAWEIVCE-AL00; wv)', + '(Linux; Android 8.0.0; AUM-TL20 Build/HONORAUM-TL20; wv)', + '(Linux; Android 10; ALP-AL00 Build/HUAWEIALP-AL00; wv)', + '(Linux; U; Android 10; zh-cn; MI 8 SE Build/QKQ1.190828.002)', + '(Linux; Android 7.1.1; OPPO A83 Build/N6F26Q; wv)', + '(Linux; Android 10; VOG-AL10 Build/HUAWEIVOG-AL10; wv)', '(iPhone; CPU iPhone OS 13_3_1 like Mac OS X)', + '(Linux; U; Android 10; zh-cn; MI 9 Build/QKQ1.190825.002)', + '(Linux; Android 9; INE-TL00 Build/HUAWEIINE-TL00; wv)', + '(Linux; Android 9; ONEPLUS A6000 Build/PKQ1.180716.001; wv)', + '(Linux; U; Android 9; zh-cn; Mi9 Pro 5G Build/PKQ1.190714.001)', + '(Linux; Android 8.1.0; OPPO R11 Plus Build/OPM1.171019.011; wv)', + '(Linux; Android 8.1.0; COR-AL00 Build/HUAWEICOR-AL00; wv)', + '(Linux; Android 7.1.2; M15 Build/N2G47H; wv)', '(Linux; arm_64; Android 7.0; LG-H870DS)', + '(Linux; U; Android 9; zh-cn; MI CC9 Pro Build/PKQ1.190302.001)', + '(Linux; Android 10; SM-G9730 Build/QP1A.190711.020; wv)', + '(Linux; Android 7.1.2; Hisense A2T Build/N2G47H; wv)', + '(Linux; U; Android 8.1.0; zh-CN; 16th Plus Build/OPM1.171019.026)', + '(Linux; U; Android 9; zh-cn; MI 8 Lite Build/PKQ1.181007.001)', + '(Linux; Android 9; PAAM00 Build/PKQ1.190414.001; wv)', + '(iPhone; CPU iPhone OS 10_1_1 like Mac OS X)', '(iPhone; CPU iPhone OS 11_4_1 like Mac OS X)', + '(Linux; Android 9; V1914A Build/PKQ1.181016.001; wv)', + '(Linux; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10; wv)', + + ] + chrome_version = 'Chrome/{}.0.{}.{}'.format(first_num, third_num, fourth_num) + + ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/537.36', + '(KHTML, like Gecko)', chrome_version, 'Safari/537.36'] + ) + return ua + elif i == 1: + os_type = [ + '(Windows NT 6.1; WOW64)', '(Windows NT 6.0; WOW64)', + '(Windows NT 6.2; WOW64)', '(Windows NT 6.3; WOW64)', + '(Windows NT 5.1; WOW64)', '(Windows NT 5.0; WOW64)', + '(Windows NT 5.2; WOW64)', '(Windows NT 5.3; WOW64)', + '(Windows NT 10.1; WOW64)', '(Windows NT 10.0; WOW64)', + '(Windows NT 10.2; WOW64)', '(Windows NT 10.3; WOW64)', + '(Windows NT 6.1; WOW64; X64)', '(Windows NT 6.0; WOW64; X64)', + '(Windows NT 6.2; WOW64; X64)', '(Windows NT 6.3; WOW64; X64)', + '(Windows NT 5.1; WOW64; X64)', '(Windows NT 5.0; WOW64; X64)', + '(Windows NT 5.2; WOW64; X64)', '(Windows NT 5.3; WOW64; X64)', + '(Windows NT 10.1; WOW64; X64)', '(Windows NT 10.0; WOW64; X64)', + '(Windows NT 10.2; WOW64; X64)', '(Windows NT 10.3; WOW64; X64)', + '(Windows NT 6.1)', '(Windows NT 6.0)', + '(Windows NT 6.2)', '(Windows NT 6.3)', + '(Windows NT 5.1)', '(Windows NT 5.0)', + '(Windows NT 5.2)', '(Windows NT 5.3)', + '(Windows NT 10.1)', '(Windows NT 10.0)', + '(Windows NT 10.2)', '(Windows NT 10.3)', + ] + banben = str(random.randint(47, 170)) + '.0.' + str(random.randint(2000, 2755)) + '.' + str( + random.randint(0, 25)) + + ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/537.36', + '(KHTML, like Gecko)', 'Chrome/' + banben, 'Safari/537.36']) + return ua + elif i == 2: + os_type = [ + '(Macintosh; U; PPC Mac OS X 10_5_8; ja-jp)', '(Windows; U; Windows NT 6.1; cs-CZ)', + '(Windows; U; Windows NT 6.0; tr-TR)', '(Windows; U; Windows NT 5.1; ru-RU)', + '(Windows; U; Windows NT 6.0; tr-TR)', '(Macintosh; Intel Mac OS X 10_6_8)', + '(Windows; U; Windows NT 6.1; zh-HK)', '(Windows; U; Windows NT 6.0; ja-JP)', + '(Windows; U; Windows NT 6.0; hu-HU)', '(Macintosh; U; Intel Mac OS X 10_6_6; de-de)', + '(Windows; U; Windows NT 6.1; ko-KR)', '(Macintosh; Intel Mac OS X 10_7_3)', + '(Macintosh; U; PPC Mac OS X 10_5_8; ja-jp)', '(Windows; U; Windows NT 6.1; sv-SE)', + '(Macintosh; U; Intel Mac OS X 10_6_6; fr-ch)', '(Windows; U; Windows NT 6.1; de-DE)', + '(Windows; U; Windows NT 6.0; de-DE)', '(Macintosh; U; Intel Mac OS X 10_5_8; zh-cn)', + '(Macintosh; U; Intel Mac OS X 10_6_6; ja-jp)', '(Windows; U; Windows NT 6.0; en-US)', + ] + banben = str(random.randint(533, 534)) + '.' + str(random.randint(18, 21)) + '.' + str(random.randint(1, 27)) + chrome_version = ['Version/5.0.3', 'Version/5.0.4', 'Version/5.0.2', 'Version/7.0.3', + 'Version/6.0 Mobile/10A5355d', 'Version/5.1.7', 'Version/5.1.6', + 'Version/5.1.3', 'Version/5.1.4', 'Version/5.1.2', 'Version/5.1.3', ] + + ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/' + banben, + '(KHTML, like Gecko)', random.choice(chrome_version), 'Safari/' + banben] + ) + return ua + elif i == 3: + os_type = [ + '(Windows NT 10.0; Win64; x64; rv:', '(Windows NT 6.3; Win64; x64; rv:', + '(Windows NT 6.2; Win64; x64; rv:', '(Windows NT 10; rv:', + '(Windows NT 6.3; rv:', '(Windows NT 6.2; rv:', + '(Windows NT 6.1; rv:', '(Windows NT 6.1; Win64; x64; rv:', + '(X11; Linux i586; rv:', '(Windows NT 10.0; Win64; x64; rv:', + ] + banben = str(random.randint(20, 50)) + '.0' + chrome_version = ['Gecko/20100101 Firefox/', 'Gecko/20130405 Firefox/', 'Gecko/20130330 Firefox/', + 'Gecko/20130430 Firefox/', 'Gecko/20140230 Firefox/', + 'Gecko/20140630 Firefox/', 'Gecko/20140512 Firefox/', 'Gecko/20140712 Firefox/', + 'Gecko/20100502 Firefox/'] + + ua = ' '.join(['Mozilla/5.0', random.choice(os_type) + banben + ')', random.choice(chrome_version) + banben]) + return ua + elif i == 4: + os_type = [ + '(Macintosh; U; Intel Mac OS X 10_6_7; ', '(Macintosh; U; Intel Mac OS X 10_6_5; ', + '(Windows; U; Windows NT 6.1; ', '(Macintosh; U; Intel Mac OS X 10_6_6; ', + '(Windows; U; Windows NT 6.0; ', '(Windows; U; Windows NT 6.1; ', + '(Windows; U; Windows NT 5.1; ', '(Macintosh; U; Intel Mac OS X 10_6_6; ', + '(Macintosh; U; PPC Mac OS X 10_5_8;', '(Macintosh; U; Intel Mac OS X 10_6_7;', + '(Macintosh; U; Intel Mac OS X 10_6_5;', '(Macintosh; U; Intel Mac OS X 10_6_6;', + ] + diqu = ['ja-jp)', 'de-de)', 'de-DE)', 'fr-ch)', 'en-US)', 'cs-CZ)', 'it-it)', 'ko-kr)', 'da-dk)', 'ar)', + 'hu-HU)', + 'ko-KR)', 'es-es)', 'zh-HK)', 'en-gb)' + ] + banben = str(random.randint(532, 535)) + '.' + str(random.randint(19, 55)) + '.' + str(random.randint(1, 25)) + + ua = ' '.join(['Mozilla/5.0', random.choice(os_type) + random.choice(diqu), 'AppleWebKit/' + banben, + '(KHTML, like Gecko)', 'Version/5.0.' + str(random.randint(1, 5)), 'Safari/' + banben]) + return ua + elif i == 5: + os_type = [ + '(Windows; U; Windows NT 5.1', '(Macintosh; U; Intel Mac OS X 10_6_6', + '(Macintosh; U; PPC Mac OS X 10_5_8', '(Macintosh; U; Intel Mac OS X 10_6_7', + '(Macintosh; U; Intel Mac OS X 10_6_5', '(Macintosh; U; Intel Mac OS X 10_6_6', + '(Macintosh; AMD Mac OS X 10_8_2', '(Macintosh; Intel Mac OS X 10_10_1', + '(Macintosh; Intel Mac OS X 10_5_8', '(Macintosh; Intel Mac OS X 10_6_0', + '(Macintosh; Intel Mac OS X 10_6_2', '(Macintosh; Intel Mac OS X 10_6_3', + '(Macintosh; Intel Mac OS X 10_6_4', '(Macintosh; Intel Mac OS X 10_6_5', + '(Macintosh; Intel Mac OS X 10_6_6', '(Macintosh; Intel Mac OS X 10_6_7', + '(Macintosh; Intel Mac OS X 10_6_8', '(Macintosh; Intel Mac OS X 10_7_0', + '(Macintosh; Intel Mac OS X 10_7_1', '(Macintosh; Intel Mac OS X 10_7_2', + '(Macintosh; Intel Mac OS X 10_7_3', '(Macintosh; Intel Mac OS X 10_7_4', + '(Macintosh; Intel Mac OS X 10_7_5', '(Macintosh; Intel Mac OS X 10_8_0', + '(Macintosh; Intel Mac OS X 10_8_1', '(Macintosh; Intel Mac OS X 10_8_2', + '(Macintosh; Intel Mac OS X 10_8_3', '(Macintosh; Intel Mac OS X 10_9_0', + '(Macintosh; Intel Mac OS X 10_9_1', '(Macintosh; Intel Mac OS X 10_9_2', + '(Macintosh; Intel Mac OS X 10_9_3', '(Macintosh; PPC Mac OS X 10_6_7', + '(Macintosh; U; Intel Mac OS X 10_5_6', '(Macintosh; U; Intel Mac OS X 10_5_7', + '(Macintosh; U; Intel Mac OS X 10_5_8', '(Macintosh; U; Intel Mac OS X 10_5_9', + '(Macintosh; U; Intel Mac OS X 10_6_0', '(Macintosh; U; Intel Mac OS X 10_6_1', + '(Macintosh; U; Intel Mac OS X 10_6_2', '(Macintosh; U; Intel Mac OS X 10_6_3', + '(Macintosh; U; Intel Mac OS X 10_6_4', '(Macintosh; U; Intel Mac OS X 10_6_5', + '(Macintosh; U; Intel Mac OS X 10_6_6', '(Macintosh; U; Intel Mac OS X 10_6_7', + '(Macintosh; U; Intel Mac OS X 10_6_8', '(Macintosh; U; Intel Mac OS X 10_8', + + ] + diqu = ['; ja-jp)', '; e-de)', '; de-DE)', '; fr-ch)', '; en-US)', '; cs-CZ)', '; it-it)', '; ko-kr)', + '; da-dk)', '; ar)', '; hu-HU)', '; ko-KR)', '; es-es)', '; zh-HK)', '; en-gb)', '; id-ID)' + ] + banben = str(random.randint(500, 535)) + '.' + str(random.randint(0, 55)) + '.' + str(random.randint(0, 25)) + + ua = ' '.join(['Mozilla/5.0', random.choice(os_type) + random.choice(diqu), 'AppleWebKit/' + banben, + '(KHTML, like Gecko)', 'Version/5.0.' + str(random.randint(1, 9)), 'Safari/' + banben]) + return ua + else: + os_type = [ + '(iPhone; U; CPU iPhone OS 4_3_1 like Mac OS X', '(iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X', + '(iPhone; U; CPU iPhone OS 4_3 like Mac OS X', '(iPhone; U; CPU iPhone OS 4_2_4 like Mac OS X', + '(iPhone; CPU iPhone OS 12_1_4 like Mac OS X', '(iPhone; CPU iPhone OS 12_0 like Mac OS X', + '(iPhone; CPU iPhone OS 11_2 like Mac OS X', '(iPhone 6s; CPU iPhone OS 11_4_1 like Mac OS X', + '(iPhone; CPU iPhone OS 10_1 like Mac OS X', '(iPhone; CPU iPhone OS 11_0_2 like Mac OS X', + '(iPhone; CPU iPhone OS 11_4_1 like Mac OS X', '(iPhone; CPU iPhone OS 10_1_1 like Mac OS X', + '(iPhone; CPU iPhone OS 13_5_1 like Mac OS X', '(iPhone; CPU iPhone OS 8_3 like Mac OS X', + '(iPhone; CPU iPhone OS 14_4 like Mac OS X', '(iPhone; CPU iPhone OS 13_6 like Mac OS X', + '(iPhone; CPU iPhone OS 14_1 like Mac OS X', '(iPhone; CPU iPhone OS 13_6_1 like Mac OS X' + + ] + diqu = ['; ja-jp)', '; e-de)', '; de-DE)', '; fr-ch)', '; en-US)', '; cs-CZ)', '; it-it)', '; ko-kr)', + '; da-dk)', '; ar)', '; hu-HU)', '; ko-KR)', '; es-es)', '; zh-HK)', '; en-gb)', '; id-ID)' + ] + banben = str(random.randint(500, 535)) + '.' + str(random.randint(0, 55)) + '.' + str(random.randint(0, 25)) + + mobi = ['Version/6.0 Mobile/10A5355d', 'Version/5.1 Mobile/9B176', 'Version/5.0.2 Mobile/8J2', + 'Version/5.0.2 Mobile/8G4', + 'Version/5.0.2 Mobile/8C148', 'Version/5.0.2 Mobile/8C148a', 'Version/5.0.2 Mobile/8G4', + 'Version/5.0.2 Mobile/8F190', + 'Version/4.0.5 Mobile/8B5097d', 'Version/4.0.5 Mobile/8B117', 'Version/4.0.4 Mobile/7B314', + 'Version/4.0.4 Mobile/7B334b', 'Version/4.0.4 Mobile/7D11', 'Version/4.0.4 Mobile/7B500', + 'Version/4.0.4 Mobile/7B360', 'Version/3.1.1 Mobile/5G77'] + + ua = ' '.join(['Mozilla/5.0', random.choice(os_type) + random.choice(diqu), 'AppleWebKit/' + banben, + '(KHTML, like Gecko)', random.choice(mobi), 'Safari/' + banben]) + return ua + +def load_cookies_from_file(filename): + # 以二进制写入模式打开文件 + + with open(filename, "rb") as f: + return pickle.load(f) +def View_user_home(uid,Cookies): + #访问主页,获取用户信息,只有登录才能获取地区 + for __ in range(10): + try: + + # session = requests.Session() + # session.mount('https://www.douyin.com', DESAdapter()) + url = "https://www.douyin.com/user/" + uid + headers = { + 'Connection': 'keep-alive', + 'Pragma': 'no-cache', + 'Cache-Control': 'no-cache', + 'User-Agent': zhengchang_ua(1), + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', + 'Accept-Encoding': 'gzip, deflate', + 'Accept-Language': 'zh-CN,zh;q=0.9', + 'cookie':Cookies + } + data = {'age': None, 'awemeCount': None, 'desc': None, 'enterpriseVerifyReason': None, 'ip': None, 'mplatformFollowersCount': None,"followingCount":None} + response = requests.get(url=url,headers=headers,timeout = 1,verify=False) + # print(response.text) + rtext = response.text + if '>私密账号

' in rtext: + data['private'] = True + push = re.findall(f'freq_visit_msg.*secUid\\\\":\\\\"{uid}.*?redirectFrom', rtext) + if push: + ipLocation = re.findall('"ipLocation\\\\":\\\\"(.*?)\\\\"',push[0])#IP归属地 + if ipLocation: + #未知是'$undefined' + if '$undefined' in ipLocation[0]: + data['ip'] = '未知' + else: + data['ipLocation'] = ipLocation[0].replace('IP属地:', '') + country = re.findall('"country\\\\":\\\\"(.*?)\\\\"', push[0]) # 城市 + province = re.findall('"province\\\\":\\\\"(.*?)\\\\"', push[0]) # 城市 + city = re.findall('"city\\\\":\\\\"(.*?)\\\\"', push[0]) # 城市 + # 未知是'$undefined' + if '$undefined' in country or not country: + data['country'] = '未知' + elif '$undefined' in province or not province: + data['country'] = country[0] + elif '$undefined' in city or not city: + data['country'] = country[0] + else: + data['country'] = city[0] + + age = re.findall('"age\\\\":(.*?),', push[0]) # 年龄 + if age: + #未知是['null'] + if 'null' in age[0] or '-1' in age[0]: + data['age'] = '未知' + else: + data['age'] = age[0] + awemeCount = re.findall('"awemeCount\\\\":(.*?),', push[0]) # 作品数量 + if awemeCount: + if awemeCount[0] != '': + data['awemeCount'] = awemeCount[0] + # followingCount = re.findall('"followingCount\\\\":(.*?),', push[0]) # 关注数量 + # if followingCount: + # if followingCount[0] != '': + # data['followingCount'] = followingCount[0] + mplatformFollowersCount = re.findall('"mplatformFollowersCount\\\\":(.*?),', push[0]) # 粉丝数量 + if mplatformFollowersCount: + if mplatformFollowersCount[0] != '': + data['mplatformFollowersCount'] = mplatformFollowersCount[0] + desc = re.findall('"desc\\\\":\\\\"(.*?)\\\\"', push[0]) # 简介 + if desc: + if desc[0] != '': + data['desc'] = desc[0] + enterpriseVerifyReason = re.findall('"enterpriseVerifyReason\\\\":\\\\"(.*?)\\\\"', push[0]) # 有内容就是蓝V + if enterpriseVerifyReason: + if enterpriseVerifyReason[0] != '': + data['enterpriseVerifyReason'] = True + return data + except Exception as e: + pass + # print('fwzy',e) + return False + + +if __name__ == '__main__': + with open(r"D:\job_demo\demo\测试\cookie_name.txt", "r", encoding="utf-8") as f: + + user_name = f.read().split("|")[1].strip() + Cookie = load_cookies_from_file( + r"D:\job_demo\demo\测试\MS4wLjABAAAAc9m4vmspNsSiYP348XRC-OLVqSXRn8Rdtl618fbzYag.pkl" + ) + # print(Cookie) + # print(type(Cookie)) + cookies_dict = {c.name: c.value for c in Cookie} + cookie_str = "; ".join(f"{k}={v}" for k, v in cookies_dict.items()) + + uid = 'MS4wLjABAAAA0LR2Y-2oYACSGGB16slvh8nX8Z7kZpX7D-rlXcNnoHI' + + + user_data = View_home(uid,cookie_str) + print(user_data) + + \ No newline at end of file