Python 如何使用Selenium和BeautifulSoup从标记中获取文本

Python 如何使用Selenium和BeautifulSoup从标记中获取文本,python,selenium,beautifulsoup,Python,Selenium,Beautifulsoup,这是我需要得到的验证码的文本描述。但是我不能和BeautifulSoup在一起。请帮我修一下 当我运行代码时:结果是无 import os, urllib.request, requests, datetime, time, random, ssl, json, codecs, csv, urllib from urllib.request import Request, urlopen from urllib.request import urlretrieve from datetime i

这是我需要得到的验证码的文本描述。但是我不能和BeautifulSoup在一起。请帮我修一下

当我运行代码时:结果是无

import os, urllib.request, requests, datetime, time, random, ssl, json, codecs, csv, urllib
from urllib.request import Request, urlopen
from urllib.request import urlretrieve
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup


chromedriver = "chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
options = webdriver.ChromeOptions() 
options.add_argument("start-maximized")
options.add_argument('disable-infobars')
os.environ["webdriver.chrome.driver"] = chromedriver
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(executable_path=chromedriver, chrome_options=chrome_options)
driver.set_window_size(1050, 740)
driver.get("https://www.inipec.gov.it/cerca-pec/-/pecs/companies")
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[name^='a-'][src^='https://www.google.com/recaptcha/api2/anchor?']")))
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//span[@class='recaptcha-checkbox goog-inline-block recaptcha-checkbox-unchecked rc-anchor-checkbox']/div[@class='recaptcha-checkbox-checkmark']"))).click()
time.sleep(5)
html = driver.page_source()
soup = BeautifulSoup(html, 'html.parser')
title = soup.find('div',{'class':'rc-imageselect-desc-wrapper'})
print (title)
driver.quit()

您要查找的内容位于不同的iframe上,您需要另一个切换到frame

.....
time.sleep(5)
# go to parent or top frame
driver.switch_to.default_content()
iframe = driver.find_element_by_css_selector('iframe[title="recaptcha challenge"]')
driver.switch_to.frame(iframe)
#title = driver.find_element_by_css_selector('.rc-imageselect-desc-wrapper strong') # cars
title = driver.find_element_by_class_name('rc-imageselect-desc-wrapper') # Select all images with cars.....
print(title.text)

# with BeautifulSoup
#html = driver.page_source()
#soup = BeautifulSoup(html, 'html.parser')
#title = soup.find('div',{'class':'rc-imageselect-desc-wrapper'})
#print (title)