Python 使用Selenium和不同文本部分之间的空白刮除类的文本
我想用Selenium从这个网站上刮取类“撕裂点”的所有文本值: 因此,我使用以下函数:Python 使用Selenium和不同文本部分之间的空白刮除类的文本,python,selenium,Python,Selenium,我想用Selenium从这个网站上刮取类“撕裂点”的所有文本值: 因此,我使用以下函数: dots_graph = driver.find_element_by_class_name("tore-dots") dots_graph.text 结果是一个串联字符串,如:“6121198912101179685765554353454333” 但是,数字代表不同的位置,最多两位数。 如何使用分隔符符号刮除文本。例如,在列表中分隔的所有不同元素,而不是在字符串中串联?您可以使用驱
dots_graph = driver.find_element_by_class_name("tore-dots")
dots_graph.text
结果是一个串联字符串,如:“6121198912101179685765554353454333”
但是,数字代表不同的位置,最多两位数。
如何使用分隔符符号刮除文本。例如,在列表中分隔的所有不同元素,而不是在字符串中串联?您可以使用
驱动程序。执行\u script
以获取文本值:
from bs4 import BeautifulSoup as soup
from selenium import webdriver
d = webdriver.Chrome('/Users/jamespetullo/Downloads/chromedriver')
d.get('https://www.fussballdaten.de/vereine/fc-bayern-muenchen/2019/')
dot_vals = d.execute_script('return Array.from(document.querySelectorAll("g.tore-dots text")).map(x => x.innerHTML)')
输出:
['2', '1', '1', '1', '1', '2', '6', '4', '2', '3', '5', '5', '4', '3', '3', '3', '2', '2', '2', '3', '2', '2', '2', '2', '1', '1', '2', '1', '1', '1', '1', '1', '1', '1']
在获得
点图
后,您应该使用点图。查找元素
(在word元素
中使用chars
)以搜索点图
中的所有
作为分隔元素,然后您应该使用for
-循环从每个
中获取.text
或者您可以尝试在一个xpath
# doesn't work with `g` and `text` - maybe because it is inside `<SVG>`
#all_items = driver.find_elements_by_xpath('//g[@class="tore-dots"]//text')
all_items = driver.find_elements_by_xpath('//*[@class="tore-dots"]//*[name()="text"]')
for item in all_items:
print(item.text)
dot_vals = [item.text for item in all_items]
顺便说一句:
.text
并不意味着
就像它在beautifulsoup
编辑: 最小工作代码
from selenium import webdriver
#driver = webdriver.Firefox()
driver = webdriver.Chrome()
driver.get('https://www.fussballdaten.de/vereine/fc-bayern-muenchen/2019/')
# close popup window with message
driver.find_element_by_xpath('//button[@aria-label="Einwilligen"]').click()
print('--- FIND ---')
dots_graph = driver.find_element_by_class_name("tore-dots")
all_items = dots_graph.find_elements_by_tag_name("text")
dot_vals = [item.text for item in all_items]
print(dot_vals)
print('--- XPATH (g, text) ---')
# doesn't work with `g` and `text` - maybe because it is inside `<SVG>`
all_items = driver.find_elements_by_xpath('//g[@class="tore-dots"]//text')
dot_vals = [item.text for item in all_items]
print(dot_vals)
print('--- XPATH (*, name) ---')
all_items = driver.find_elements_by_xpath('//*[@class="tore-dots"]//*[local-name()="text"]')
dot_vals = [item.text for item in all_items]
print(dot_vals)
print('--- XPATH (*, local-name) ---')
all_items = driver.find_elements_by_xpath('//*[@class="tore-dots"]//*[name()="text"]')
dot_vals = [item.text for item in all_items]
print(dot_vals)
print('--- CSS ---')
all_items = driver.find_elements_by_css_selector('.tore-dots text')
dot_vals = [item.text for item in all_items]
print(dot_vals)
从selenium导入webdriver
#driver=webdriver.Firefox()
driver=webdriver.Chrome()
司机,上车https://www.fussballdaten.de/vereine/fc-bayern-muenchen/2019/')
#关闭带有消息的弹出窗口
驱动程序。通过xpath(“//按钮[@aria label=“Einwilligen”]”)查找元素。单击()
打印('--FIND---')
dots\u graph=驱动程序。通过类名称(“tore dots”)查找元素
所有项目=点图。通过标记名称(“文本”)查找元素
dot_vals=[所有_项目中项目的item.text]
打印(点值)
打印('--XPATH(g,text)--')
#不适用于'g'和'text'-可能是因为它在``内
all_items=driver.find_elements_by_xpath('//g[@class=“tore dots”]//text'))
dot_vals=[所有_项目中项目的item.text]
打印(点值)
打印('--XPATH(*,name)--')
所有项目=驱动程序。通过xpath查找元素('/*[@class=“tore dots”]/*[local-name()=“text”]”)
dot_vals=[所有_项目中项目的item.text]
打印(点值)
打印('--XPATH(*,本地名称)--')
所有项目=驱动程序。通过xpath('//*[@class=“tore dots”]/*[name()=“text”]”查找元素
dot_vals=[所有_项目中项目的item.text]
打印(点值)
打印('--CSS---')
all_items=驱动程序。通过_css_选择器('.tore dots text')查找_元素
dot_vals=[所有_项目中项目的item.text]
打印(点值)
我们没有足够的信息来回答您的问题。请包括一个。谢谢,我编辑我的帖子,这样你可以更好地理解我的意思。
all_items = driver.find_elements_by_css_selector('.tore-dots text')
for item in all_items:
print(item.text)
dot_vals = [item.text for item in all_items]
from selenium import webdriver
#driver = webdriver.Firefox()
driver = webdriver.Chrome()
driver.get('https://www.fussballdaten.de/vereine/fc-bayern-muenchen/2019/')
# close popup window with message
driver.find_element_by_xpath('//button[@aria-label="Einwilligen"]').click()
print('--- FIND ---')
dots_graph = driver.find_element_by_class_name("tore-dots")
all_items = dots_graph.find_elements_by_tag_name("text")
dot_vals = [item.text for item in all_items]
print(dot_vals)
print('--- XPATH (g, text) ---')
# doesn't work with `g` and `text` - maybe because it is inside `<SVG>`
all_items = driver.find_elements_by_xpath('//g[@class="tore-dots"]//text')
dot_vals = [item.text for item in all_items]
print(dot_vals)
print('--- XPATH (*, name) ---')
all_items = driver.find_elements_by_xpath('//*[@class="tore-dots"]//*[local-name()="text"]')
dot_vals = [item.text for item in all_items]
print(dot_vals)
print('--- XPATH (*, local-name) ---')
all_items = driver.find_elements_by_xpath('//*[@class="tore-dots"]//*[name()="text"]')
dot_vals = [item.text for item in all_items]
print(dot_vals)
print('--- CSS ---')
all_items = driver.find_elements_by_css_selector('.tore-dots text')
dot_vals = [item.text for item in all_items]
print(dot_vals)