修复点赞
This commit is contained in:
@@ -270,7 +270,8 @@ def check_account_status(page, cookies):
|
||||
|
||||
# 判断是否需要运行cookies页面
|
||||
if "flow=user_cookie_choice_v2&source=pft_user_cookie_choice" in page.url:
|
||||
allow_cookies = page.query_selector('//div[@role="dialog"]/div/div/div/div/div[3]/div/div/div[1]/div[1]/div/div')
|
||||
allow_cookies = page.query_selector(
|
||||
'//div[@role="dialog"]/div/div/div/div/div[3]/div/div/div[1]/div[1]/div/div')
|
||||
if allow_cookies is None:
|
||||
raise OperationFailed("允许cookies设置点击失败")
|
||||
allow_cookies.click()
|
||||
@@ -294,6 +295,30 @@ lock = RLock()
|
||||
login_semaphore = threading.Semaphore(2)
|
||||
|
||||
|
||||
def is_post_liked_in_dialog(page):
|
||||
"""判断弹窗内的帖子是否已点赞"""
|
||||
|
||||
# 检查是否存在已点赞按钮
|
||||
remove_like_button = page.query_selector('[role="dialog"] div[aria-label="Remove Like"]')
|
||||
|
||||
if remove_like_button:
|
||||
# 获取点赞数
|
||||
like_count_elem = remove_like_button.query_selector('..').query_selector('span[dir="auto"]')
|
||||
like_count = like_count_elem.inner_text() if like_count_elem else "未知"
|
||||
print(f"帖子已点赞,点赞数:{like_count}")
|
||||
return True
|
||||
else:
|
||||
# 检查是否存在未点赞按钮
|
||||
like_button = page.query_selector('[role="dialog"] div[aria-label="Like"]')
|
||||
if like_button:
|
||||
like_count_elem = like_button.query_selector('..').query_selector('span[dir="auto"]')
|
||||
like_count = like_count_elem.inner_text() if like_count_elem else "0"
|
||||
print(f"帖子未点赞,点赞数:{like_count}")
|
||||
return False, like_count
|
||||
else:
|
||||
print("未找到点赞按钮")
|
||||
return False
|
||||
|
||||
def playwright_like(cookies, target_url):
|
||||
path = os.path.join(BASE_PATH, 'chrome', '130-0008', 'chrome.exe')
|
||||
with lock:
|
||||
@@ -317,14 +342,11 @@ def playwright_like(cookies, target_url):
|
||||
page = context.new_page()
|
||||
check_account_status(page, parse_cookies(cookies))
|
||||
|
||||
url = 'https://facebook.com'
|
||||
try:
|
||||
|
||||
retry_goto(page, url)
|
||||
time.sleep(random.randint(3, 10))
|
||||
if 'permalink.php?story_fbid' in target_url or '/permalink/' in target_url or '/posts/' in target_url:
|
||||
# 文字或图片类型
|
||||
button_xpath = '//*[@role="dialog"]//span[text()="Like" or @data-ad-rendering-role="like_button"]'
|
||||
button_xpath = '//*[@role="dialog"]//div[text()="Like" or @data-ad-rendering-role="like_button"]'
|
||||
elif 'watch/?v' in target_url or '/videos/' in target_url:
|
||||
# 视频类型, 视频类型,
|
||||
button_xpath = '//span[@data-ad-rendering-role="like_button"][1]'
|
||||
@@ -343,9 +365,9 @@ def playwright_like(cookies, target_url):
|
||||
# 滚动到按钮所在处
|
||||
button.scroll_into_view_if_needed()
|
||||
# 判断按钮是否已经点过赞
|
||||
if button.get_attribute('style') == "" or button.get_attribute('style') is None:
|
||||
if is_post_liked_in_dialog(page):
|
||||
# 未点过赞进行点赞操作
|
||||
button.click(force=True)
|
||||
button.evaluate("element => element.click()")
|
||||
else:
|
||||
raise OperationFailed("未找到点赞按钮")
|
||||
time.sleep(10)
|
||||
@@ -1254,8 +1276,10 @@ def playwright_share(cookies, target_url, content):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
cookies = "c_user=61587708421547; xs=32:70ZigyqtoCfQ0w:2:1770569737:-1:-1; oo=v13:1770569731; datr=A8CIafB8DHVOhB7TfY9GWAIG"
|
||||
print(playwright_check_account_cookies(cookies))
|
||||
cookies = {"c_user": "61580731829951", "datr": "YAG0acMh3dBPSWnm3cJbRXi3",
|
||||
"fr": "0R0Vyl5VWkjupCB9r.AWev5P-8DfHd85RU3mkQYZQCOhBiJFmEB_v36B87pqndwSE9tDc.BptAHA..AAA.0.0.BptAHA.AWf5e5v7gJOW95xdm38EkmtRYl0",
|
||||
"xs": "27:0Z_9KYAMCws04A:2:1773404616:-1:-1"}
|
||||
# print(playwright_check_account_cookies(cookies))
|
||||
# print(playwright_set_user_profile(cookies, "61584735094876", "Inaaya", "Inaaya",
|
||||
# "facebook/user_upload/0196f098-851c-7810-b2aa-0833a0a7b09d/8c428558-2d90-4f45-baa3-a25f8a654b5c.png"))
|
||||
# cookies = '{"locale": "en_US", "datr": "ZnGnaBBx0yN7pov19-8_A6Gr", "sb": "ZnGnaDQicDSsVuevkudqio1J", "m_pixel_ratio": "1", "wd": "1920x1080", "test_cookie": "CheckForPermission", "c_user": "61579364283503", "xs": "34%3AdWeZoaWzFrtdVQ%3A2%3A1755804022%3A-1%3A-1", "oo": "v1%7C3%3A1755804031"}'
|
||||
@@ -1267,7 +1291,8 @@ if __name__ == '__main__':
|
||||
# post(cookies, 'cs2025')
|
||||
# like(cookies, 'ZmVlZGJhY2s6MTIyMTA5NjE0NjU0NzkzNzc5')
|
||||
# comment(cookies, 'ZmVlZGJhY2s6MTIyMTA5NjE0NjU0NzkzNzc5', 'game la', 'xzpq.mp4')
|
||||
# playwright_like(cookies, 'https://www.facebook.com/watch/?v=1007800324567828')
|
||||
playwright_like(cookies,
|
||||
'https://www.facebook.com/permalink.php?story_fbid=pfbid026dQik7NyujSGd2rjWyTKbQVw2CVM5BeJEP9sYxo7K5TBGhWZ4sUfs4gMoSLKq2mJl&id=61575372223339')
|
||||
# print(playwright_post(cookies, '1111', image_key="1.mp4"))
|
||||
# playwright_post(cookies, '2025-3-26~like', "")
|
||||
# playwright_comment(
|
||||
|
||||
Reference in New Issue
Block a user