Я пытаюсь очистить этот веб-сайт Century Office Products, Inc и не могу очистить этот текст:
Century Office Products, Inc. industry is listed as Ret Misc Merchandise
, так как тег, в котором он содержится, является #text,Ниже приведен код, который я пробовал:
driver.get('https://www.corporationwiki.com/New-Jersey/Middlesex/century-office-products-inc/53844156.aspx') text = [k.text for k in driver.find_elements_by_xpath("//div[@class='card']//div[@class='card-body']//h2//following::p[2]")]
Использование xpath:
import requests from lxml.html import fromstring link = "https://www.corporationwiki.com/New-Jersey/Middlesex/century-office-products-inc/53844156.aspx" r = requests.get(link, headers={'User-Agent':'Mozilla/5.0'}) tree = fromstring(r.text) elem = tree.xpath("//*[@class='card-body']/div/following::text()")[0].strip() print(elem)
с помощью селектора CSS:
import requests from bs4 import BeautifulSoup link = "https://www.corporationwiki.com/New-Jersey/Middlesex/century-office-products-inc/53844156.aspx" r = requests.get(link, headers={'User-Agent':'Mozilla/5.0'}) soup = BeautifulSoup(r.text, 'lxml') elem = soup.select_one("[class='card-body'] > div").next_sibling.strip() print(elem)
Они оба производят один и тот же результат:
Century Office Products, Inc. industry is listed as Ret Misc Merchandise.
Для извлечения текста Century Office Products, Inc. с использованием Selenium вам необходимо использовать WebDriverWait для visibility_of_element_located(), и вы можете использовать следующие Стратегия локатора :
visibility_of_element_located()
* Xpath * 1016
Кодовый блок:
chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("start-maximized") chrome_options.add_argument('disable-infobars') chrome_options.add_argument('--allow-running-insecure-content') driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe') driver.get("https://www.corporationwiki.com/New-Jersey/Middlesex/century-office-products-inc/53844156.aspx") print(driver.execute_script('return arguments[0].lastChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//h1[@itemprop='legalName']")))).strip())
Выход на консоль:
Century Office Products, Inc.