修复点赞
This commit is contained in:
@@ -270,7 +270,8 @@ def check_account_status(page, cookies):
|
|||||||
|
|
||||||
# 判断是否需要运行cookies页面
|
# 判断是否需要运行cookies页面
|
||||||
if "flow=user_cookie_choice_v2&source=pft_user_cookie_choice" in page.url:
|
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:
|
if allow_cookies is None:
|
||||||
raise OperationFailed("允许cookies设置点击失败")
|
raise OperationFailed("允许cookies设置点击失败")
|
||||||
allow_cookies.click()
|
allow_cookies.click()
|
||||||
@@ -294,6 +295,30 @@ lock = RLock()
|
|||||||
login_semaphore = threading.Semaphore(2)
|
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):
|
def playwright_like(cookies, target_url):
|
||||||
path = os.path.join(BASE_PATH, 'chrome', '130-0008', 'chrome.exe')
|
path = os.path.join(BASE_PATH, 'chrome', '130-0008', 'chrome.exe')
|
||||||
with lock:
|
with lock:
|
||||||
@@ -317,14 +342,11 @@ def playwright_like(cookies, target_url):
|
|||||||
page = context.new_page()
|
page = context.new_page()
|
||||||
check_account_status(page, parse_cookies(cookies))
|
check_account_status(page, parse_cookies(cookies))
|
||||||
|
|
||||||
url = 'https://facebook.com'
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
retry_goto(page, url)
|
|
||||||
time.sleep(random.randint(3, 10))
|
time.sleep(random.randint(3, 10))
|
||||||
if 'permalink.php?story_fbid' in target_url or '/permalink/' in target_url or '/posts/' in target_url:
|
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:
|
elif 'watch/?v' in target_url or '/videos/' in target_url:
|
||||||
# 视频类型, 视频类型,
|
# 视频类型, 视频类型,
|
||||||
button_xpath = '//span[@data-ad-rendering-role="like_button"][1]'
|
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()
|
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:
|
else:
|
||||||
raise OperationFailed("未找到点赞按钮")
|
raise OperationFailed("未找到点赞按钮")
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
@@ -1254,8 +1276,10 @@ def playwright_share(cookies, target_url, content):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
cookies = "c_user=61587708421547; xs=32:70ZigyqtoCfQ0w:2:1770569737:-1:-1; oo=v13:1770569731; datr=A8CIafB8DHVOhB7TfY9GWAIG"
|
cookies = {"c_user": "61580731829951", "datr": "YAG0acMh3dBPSWnm3cJbRXi3",
|
||||||
print(playwright_check_account_cookies(cookies))
|
"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",
|
# print(playwright_set_user_profile(cookies, "61584735094876", "Inaaya", "Inaaya",
|
||||||
# "facebook/user_upload/0196f098-851c-7810-b2aa-0833a0a7b09d/8c428558-2d90-4f45-baa3-a25f8a654b5c.png"))
|
# "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"}'
|
# 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')
|
# post(cookies, 'cs2025')
|
||||||
# like(cookies, 'ZmVlZGJhY2s6MTIyMTA5NjE0NjU0NzkzNzc5')
|
# like(cookies, 'ZmVlZGJhY2s6MTIyMTA5NjE0NjU0NzkzNzc5')
|
||||||
# comment(cookies, 'ZmVlZGJhY2s6MTIyMTA5NjE0NjU0NzkzNzc5', 'game la', 'xzpq.mp4')
|
# 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"))
|
# print(playwright_post(cookies, '1111', image_key="1.mp4"))
|
||||||
# playwright_post(cookies, '2025-3-26~like', "")
|
# playwright_post(cookies, '2025-3-26~like', "")
|
||||||
# playwright_comment(
|
# playwright_comment(
|
||||||
|
|||||||
Reference in New Issue
Block a user