mirror of
https://github.com/soxoj/maigret.git
synced 2026-05-07 06:24:35 +00:00
Weibo site check fix, activation mechanism added (#1938)
This commit is contained in:
@@ -39,6 +39,47 @@ class ParsingActivator:
|
|||||||
bearer_token = r.json()["accessToken"]
|
bearer_token = r.json()["accessToken"]
|
||||||
site.headers["authorization"] = f"Bearer {bearer_token}"
|
site.headers["authorization"] = f"Bearer {bearer_token}"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def weibo(site, logger):
|
||||||
|
headers = dict(site.headers)
|
||||||
|
import requests
|
||||||
|
|
||||||
|
session = requests.Session()
|
||||||
|
# 1 stage: get the redirect URL
|
||||||
|
r = session.get(
|
||||||
|
"https://weibo.com/clairekuo",
|
||||||
|
headers=headers,
|
||||||
|
allow_redirects=False
|
||||||
|
)
|
||||||
|
logger.debug(
|
||||||
|
f"1 stage: {'success' if r.status_code == 302 else 'no 302 redirect, fail!'}"
|
||||||
|
)
|
||||||
|
location = r.headers.get("Location")
|
||||||
|
|
||||||
|
# 2 stage: go to passport visitor page
|
||||||
|
headers["Referer"] = location
|
||||||
|
r = session.get(location, headers=headers)
|
||||||
|
logger.debug(
|
||||||
|
f"2 stage: {'success' if r.status_code == 200 else 'no 200 response, fail!'}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# 3 stage: gen visitor token
|
||||||
|
headers["Referer"] = location
|
||||||
|
r = session.post(
|
||||||
|
"https://passport.weibo.com/visitor/genvisitor2",
|
||||||
|
headers=headers,
|
||||||
|
data={
|
||||||
|
'cb': 'visitor_gray_callback',
|
||||||
|
'tid': '',
|
||||||
|
'from': 'weibo'
|
||||||
|
},
|
||||||
|
)
|
||||||
|
cookies = r.headers.get('set-cookie')
|
||||||
|
logger.debug(
|
||||||
|
f"3 stage: {'success' if r.status_code == 200 and cookies else 'no 200 response and cookies, fail!'}"
|
||||||
|
)
|
||||||
|
site.headers["Cookie"] = cookies
|
||||||
|
|
||||||
|
|
||||||
def import_aiohttp_cookies(cookiestxt_filename):
|
def import_aiohttp_cookies(cookiestxt_filename):
|
||||||
cookies_obj = MozillaCookieJar(cookiestxt_filename)
|
cookies_obj = MozillaCookieJar(cookiestxt_filename)
|
||||||
|
|||||||
+4
-2
@@ -277,14 +277,16 @@ def process_site_result(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if site.activation and html_text and is_need_activation:
|
if site.activation and html_text and is_need_activation:
|
||||||
|
logger.debug(f"Activation for {site.name}")
|
||||||
method = site.activation["method"]
|
method = site.activation["method"]
|
||||||
try:
|
try:
|
||||||
activate_fun = getattr(ParsingActivator(), method)
|
activate_fun = getattr(ParsingActivator(), method)
|
||||||
# TODO: async call
|
# TODO: async call
|
||||||
activate_fun(site, logger)
|
activate_fun(site, logger)
|
||||||
except AttributeError:
|
except AttributeError as e:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
f"Activation method {method} for site {site.name} not found!"
|
f"Activation method {method} for site {site.name} not found!",
|
||||||
|
exc_info=True,
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
|
|||||||
@@ -30186,20 +30186,39 @@
|
|||||||
},
|
},
|
||||||
"Weibo": {
|
"Weibo": {
|
||||||
"absenceStrs": [
|
"absenceStrs": [
|
||||||
"username_box\\",
|
"<h2>400 Bad Request</h2>"
|
||||||
"info_list username\\"
|
|
||||||
],
|
],
|
||||||
"presenseStrs": [
|
"presenseStrs": [
|
||||||
"pf_username\\",
|
"{\"ok\":1,\"data\":{\"user\":"
|
||||||
"use_num\\"
|
|
||||||
],
|
],
|
||||||
|
"headers": {
|
||||||
|
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0",
|
||||||
|
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
||||||
|
"Accept-Language": "en-US,en;q=0.5",
|
||||||
|
"Upgrade-Insecure-Requests": "1",
|
||||||
|
"Sec-Fetch-Dest": "document",
|
||||||
|
"Sec-Fetch-Mode": "navigate",
|
||||||
|
"Sec-Fetch-Site": "cross-site",
|
||||||
|
"Priority": "u=0, i",
|
||||||
|
"Pragma": "no-cache",
|
||||||
|
"Cache-Control": "no-cache",
|
||||||
|
"Accept-Encoding": "gzip, deflate, br, zstd",
|
||||||
|
"TE": "trailers",
|
||||||
|
"Cookie": "SUB=_2AkMQDkYqf8NxqwFRmf4QzWnqbop-wwHEieKmUrfxJRMxHRl-yT9kqm4gtRB6O45oxc8K9O2Jsarg5zYMmQy3bR_LfISF; expires=Saturday, 06-Dec-2025 09:51:25 GMT; path=/; domain=.weibo.com; secure; httponly; SameSite=None, SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9Whze9rurqv2pUdg7sY.DTbO; expires=Saturday, 06-Dec-2025 09:51:25 GMT; path=/; domain=.weibo.com, SRT=D.QqHBTrsMMFkSVdRtOeYoWrSNUdRr4Q9QUeE8U3vkW3WzMdbbN-sPVcStNbHi5mYNUCsuPDbhVdrrS3MNAZSLiDP65FJtNqbLJ%219qRQHeiQ9SOdsM5Oi84byJS%21bOMX77%2AB.vAflW-P9Rc0lR-ykKDvnJqiQVbiRVPBtS%21r3J8sQVqbgVdWiMZ4siOzu4DbmKPWf5c4uVePpVQRpVEP%21SqWqdNumPFHL; expires=Mon, 04-Dec-2034 09:51:25 GMT; Max-Age=315360000; path=/; domain=.passport.weibo.com; secure; HttpOnly, SRF=1733478685; expires=Mon, 04-Dec-2034 09:51:25 GMT; Max-Age=315360000; path=/; domain=.passport.weibo.com; secure"
|
||||||
|
},
|
||||||
|
"activation": {
|
||||||
|
"method": "weibo",
|
||||||
|
"marks": [
|
||||||
|
"<title>\u5fae\u535a</title",
|
||||||
|
"<title>Sina Visitor System</title>"
|
||||||
|
],
|
||||||
|
"url": "https://passport.weibo.com/visitor/genvisitor2"
|
||||||
|
},
|
||||||
|
"urlProbe": "https://weibo.com/ajax/profile/info?custom={username}",
|
||||||
"url": "https://weibo.com/{username}",
|
"url": "https://weibo.com/{username}",
|
||||||
"urlMain": "https://weibo.com",
|
"urlMain": "https://weibo.com",
|
||||||
"usernameClaimed": "clairekuo",
|
"usernameClaimed": "clairekuo",
|
||||||
"usernameUnclaimed": "noonewouldeverusethis7",
|
"usernameUnclaimed": "noonewouldeverusethis7",
|
||||||
"headers": {
|
|
||||||
"Cookie": "SUB=_2AkMXyuc_f8NxqwJRmP8SyWPrbo13zAvEieKhlhbkJRMxHRl-123"
|
|
||||||
},
|
|
||||||
"checkType": "message",
|
"checkType": "message",
|
||||||
"tags": [
|
"tags": [
|
||||||
"cn",
|
"cn",
|
||||||
|
|||||||
Reference in New Issue
Block a user