fix bug: parse TweetWithVisibilityResults

master
wlt233 2 months ago
parent 78e7c6decb
commit 7d3fb12b46

@ -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): def get_timeline(driver, url):
logger.info(f"check timeline {url}") logger.info(f"check timeline {url}")
driver.get(url) try:
WebDriverWait(driver, 60).until( driver.get(url)
ec.presence_of_element_located((By.CSS_SELECTOR, 'div[aria-label="Timeline: List"]'))) WebDriverWait(driver, 60).until(
for packet in driver.get_log("performance"): ec.presence_of_element_located((By.CSS_SELECTOR, 'div[aria-label="Timeline: List"]')))
message = json.loads(packet["message"])["message"] for packet in driver.get_log("performance"):
if (message["method"] == "Network.responseReceived" and message = json.loads(packet["message"])["message"]
"ListLatestTweetsTimeline" in message["params"]["response"]["url"]): if (message["method"] == "Network.responseReceived" and
request_id = message["params"]["requestId"] "ListLatestTweetsTimeline" in message["params"]["response"]["url"]):
resp = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': request_id}) request_id = message["params"]["requestId"]
return json.loads(resp["body"]) resp = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': request_id})
return {} return json.loads(resp["body"])
except:
return {}
@ -109,6 +111,7 @@ def parse_entry(entry):
def parse_content(content): def parse_content(content):
tweet = content["itemContent"]["tweet_results"]["result"] tweet = content["itemContent"]["tweet_results"]["result"]
if not "rest_id" in tweet: tweet = tweet["tweet"]
data = parse_tweet(tweet) data = parse_tweet(tweet)
if "quoted_status_result" in tweet: if "quoted_status_result" in tweet:
data["quoted"] = parse_tweet(tweet["quoted_status_result"]["result"]) data["quoted"] = parse_tweet(tweet["quoted_status_result"]["result"])

Loading…
Cancel
Save