使用selenium.webdriver
登錄Facebook並獲取公衆人物的HTML頁面(如https://www.facebook.com/DonaldTrump/?fref=ts)可能需要從該頁面抓取發佈的內容。python如何獲取網頁的所有內容動態
我發現,使用selemium.webdriver
,只得到網頁的內容在當前屏幕中,例如,當登錄Facebook和想要得到的https://www.facebook.com/DonaldTrump/?fref=ts的所有網頁內容,我得到的僅僅是幾個後在當前屏幕中,但實際上,頁面https://www.facebook.com/DonaldTrump/?fref=ts中的帖子(內容)非常多。
我會滾動鼠標滾輪這麼多次,網頁可以達到它的底部,但現在我得到的是隻有在當前屏幕 有限的內容,你可以告訴我解決的方法,或者告訴我其他方法或除了硒庫,可以登錄facebbook並獲得目標頁面的所有內容(不僅在當前屏幕上的內容)
,我寫的程序是:
import requests
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
FACEBOOK_URL_PREFIX = "https://www.facebook.com/"
def web_public_figure(self,p_figure_name):
#delete " " in p_figue_name
p_figure_name_arr = p_figure_name.split(" ")
p_figure_name_str = "".join(p_figure_name_arr)
params = r"/?fref=ts"
p_f_web_url = FACEBOOK_URL_PREFIX + p_figure_name_str + params
# log in the website
login_url = "https://www.facebook.com/login.php?login_attempt=1&lwv=110"
glovar.webdriver_browser = webdriver.Chrome()
glovar.webdriver_browser.get(login_url)
# user credentials
user = glovar.webdriver_browser.find_element_by_css_selector("#email")
user.send_keys('[email protected]')
password = glovar.webdriver_browser.find_element_by_css_selector("#pass")
password.send_keys('expectopatronum')
login = glovar.webdriver_browser.find_element_by_css_selector("#loginbutton")
login.click()
# the login maybe fail, return to the login page
if "login" in glovar.webdriver_browser.current_url:
glovar.webdriver_browser.close()
time.sleep(10)
glovar.webdriver_browser.get(p_f_web_url)
html_p_f_page = glovar.webdriver_browser.page_source
return html_p_f_page
p_figure_name
爲"Donald trump"
,但"html_p_page"
只是整個頁面的一部分: https://www.facebook.com/DonaldTrump/?fref=ts,(only當前屏幕中的部分)。
似乎在頁面上有按鈕"see all"
,你能告訴我怎麼去這樣一個網頁上的所有內容,也許使用圖書館以外硒
給Jahooo,請你直接修改我的程序,因此,我可以清楚地看到它 – bin