From 7d3fb12b46c0e812030cf2e13ff2df5993690b06 Mon Sep 17 00:00:00 2001 From: wlt233 <1486185683@qq.com> Date: Thu, 2 Jan 2025 21:27:56 +0800 Subject: [PATCH] fix bug: parse TweetWithVisibilityResults --- twitter.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/twitter.py b/twitter.py index 627a5ea..30a2a27 100644 --- a/twitter.py +++ b/twitter.py @@ -71,20 +71,22 @@ def login(userid, username, password, authentication_secret=None): -@retry(tries=10, delay=10) +# @retry(tries=10, delay=10) def get_timeline(driver, url): logger.info(f"check timeline {url}") - driver.get(url) - WebDriverWait(driver, 60).until( - ec.presence_of_element_located((By.CSS_SELECTOR, 'div[aria-label="Timeline: List"]'))) - for packet in driver.get_log("performance"): - message = json.loads(packet["message"])["message"] - if (message["method"] == "Network.responseReceived" and - "ListLatestTweetsTimeline" in message["params"]["response"]["url"]): - request_id = message["params"]["requestId"] - resp = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': request_id}) - return json.loads(resp["body"]) - return {} + try: + driver.get(url) + WebDriverWait(driver, 60).until( + ec.presence_of_element_located((By.CSS_SELECTOR, 'div[aria-label="Timeline: List"]'))) + for packet in driver.get_log("performance"): + message = json.loads(packet["message"])["message"] + if (message["method"] == "Network.responseReceived" and + "ListLatestTweetsTimeline" in message["params"]["response"]["url"]): + request_id = message["params"]["requestId"] + resp = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': request_id}) + return json.loads(resp["body"]) + except: + return {} @@ -109,6 +111,7 @@ def parse_entry(entry): def parse_content(content): tweet = content["itemContent"]["tweet_results"]["result"] + if not "rest_id" in tweet: tweet = tweet["tweet"] data = parse_tweet(tweet) if "quoted_status_result" in tweet: data["quoted"] = parse_tweet(tweet["quoted_status_result"]["result"])