我需要 Fiverr 服務交付時間,但我只能獲得第一個包裹的(基本)交付時間。如何獲得第二個和第三個包裹的交貨時間?我有沒有機會在不使用 Selenium 的情況下獲得它?

import requests
from bs4 import BeautifulSoup
response = requests.get("https://www.fiverr.com/volkeins/provide-10x-dofollow-backlinks-from-amazon-da96-permanent")
# BEAUTIFULSOUP
soup = BeautifulSoup(response.text, 'lxml')
print(soup.find_all("b", class_ = "delivery"))
uj5u.com熱心網友回復:
url 包含的動態含義資料是由 JavaScript 生成的,BeautifulSoup 無法呈現 javaSceipt。所以,您需要像 selenium 這樣的自動化工具和 BeautifulSoup。請運行代碼。
import time
from bs4 import BeautifulSoup
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
url ="https://www.fiverr.com/volkeins/provide-10x-dofollow-backlinks-from-amazon-da96-permanent"
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.maximize_window()
time.sleep(8)
driver.get(url)
time.sleep(10)
soup = BeautifulSoup(driver.page_source, 'lxml')
driver.close()
print(soup.find("b", class_ = "delivery").text)
輸出:
7 Days Delivery
uj5u.com熱心網友回復:
使用Selenium列印文本7 Days Delivery您可以使用以下任一定位器策略:
使用css_selector和
get_attribute("innerHTML"):driver.get('https://www.fiverr.com/volkeins/provide-10x-dofollow-backlinks-from-amazon-da96-permanent') print(driver.find_element(By.CSS_SELECTOR, "b.delivery").get_attribute("innerHTML"))使用xpath和text屬性:
driver.get('https://www.fiverr.com/volkeins/provide-10x-dofollow-backlinks-from-amazon-da96-permanent') print(driver.find_element(By.XPATH, "//b[@class='delivery']").text)
要理想地提取文本7 Days Delivery,您需要為visibility_of_element_located()引入WebDriverWait,您可以使用以下任一定位器策略:
使用CSS_SELECTOR和text屬性:
driver.get('https://www.fiverr.com/volkeins/provide-10x-dofollow-backlinks-from-amazon-da96-permanent') print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "b.delivery"))).get_attribute("innerHTML"))使用XPATH和
get_attribute("innerHTML"):driver.get('https://www.fiverr.com/volkeins/provide-10x-dofollow-backlinks-from-amazon-da96-permanent') print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//b[@class='delivery']"))).text)注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC控制臺輸出:
7 Days Delivery
您可以在如何使用 Selenium - Python 檢索 WebElement 的文本中找到相關討論
參考
鏈接到有用的檔案:
get_attribute()方法Gets the given attribute or property of the element.text屬性回傳The text of the element.- 使用 Selenium 的 text 和 innerHTML 之間的區別
uj5u.com熱心網友回復:
使用requests.get('https://...').text,您將收到頁面的 html 內容。問題是大多數現代網站都使用客戶端渲染來構建頁面內容,因此您將需要 javascript 來像 Web 瀏覽器一樣渲染頁面。您可以使用硒來實作這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/443345.html
上一篇:最大化兩個陣列B[j]-A[i]的元素差異,其中j>i
下一篇:如何使用物體名稱列中的值創建一個串列,該串列在“檢查”中可見,但在使用Selenium和Python的頁面源中不可見
