【发布时间】:2016-12-22 08:30:16
【问题描述】:
我目前正在使用以下 Python 和 Selenium 版本:
Python34 3.4.3(v3.4.3:9b73f1c3e601,2015 年 2 月 24 日,22:43:06)[MSC v.1600 32 位(英特尔)]
硒 版本 2.53.2
我希望有人知道这个问题的答案。我想要实现的是获取一个 Facebook 页面,将其滚动到最远,然后展开页面下方出现的所有“cmets”、“回复”和“查看更多”链接。
到目前为止,我只尝试了“查看更多”链接,但我无法让它处理点击链接。我认为我的基本知识告诉我它找到了 xpath,因为我没有收到错误,但我为之后立即调用的 .click 函数找到了错误。我也尝试过使用find_element_by_link_text('See More'),但这不起作用。我还设法找到了两个“查看更多”链接示例所在的 html 结构,但是由于它们不相同,我不知道如何实现这些:
//div[3]/div[2]/div/span/span/a/span
//div[2]/div[2]/div/span/span/a/span
//div[@id='id_58591b7145b529535706885']/span/span/a/span
//div[@id='id_58591f8225af12f45796030']/span/span/a/span
如果有人有任何建议或修改或替代选项,那么我将在这里感谢他们。提前致谢,
import os
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
#Global Variables
target = "serena.xxxx.x"
username = "xxxxx@xxxxxx.com"
password = "xxxxxxxx"
#code block to log in user
def logmein():
search_box = driver.find_element_by_name('email')
search_box.send_keys(username)
search_box = driver.find_element_by_name('pass')
search_box.send_keys(password)
search_box.submit()
driver = webdriver.Firefox()
driver.get("https://www.facebook.com//")
logmein()
elm = driver.find_element_by_tag_name('html')
elm.send_keys(Keys.END)
time.sleep(2)
elm.send_keys(Keys.END)
time.sleep(2)
elm.send_keys(Keys.END)
time.sleep(2)
elm.send_keys(Keys.END)
time.sleep(2)
elm.send_keys(Keys.HOME)
# Initiates See More Open
SeeMore = driver.find_element_by_xpath("//a[@class='see_more_link']")
print("Found See More")
SeeMore.click()
print("Expand SeeMore option")
【问题讨论】:
-
"我想要实现的是获取一个 Facebook 页面,将其滚动到最远,然后展开所有 'cmets'、'replies' 和 'See More'出现在页面下方的链接。” - 这是为了什么,目的是什么?如果你想与 Facebook 上的内容进行交互,你应该使用他们的 API。他们的 ToS 明确禁止使用任何此类自动化工具。
标签: python facebook selenium xpath