嘿,我想要这个类中的文本并在控制台中打印它。
我该怎么做呢?
我试过了:
profileName = driver.find_element_by_class_name("._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl").text()
print(profileName)
如果你能帮助我,我将非常高兴。汤姆·鲁道夫
python中不是text()
,而是.text
这个._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl
看起来是动态的,css_selector
不是class_name
。
profileName = driver.find_element_by_css_selector("._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl").text
print(profileName)
代码2:profileName = driver.find_element_by_css_selector("._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl").get_attribute('innerHTML')
print(profileName)
如果元素有所有这些类名,您只需将find_element_by_class_name
更改为find_element_by_css_selector
,如下所示:
profileName = driver.find_element_by_css_selector("._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl").text()
print(profileName)
然而,我很确定这些类名是动态变化的,所以这将不起作用。
另外,确保在访问元素之前添加了一些延迟/等待。
可以试试这个来自BeautifulSoup库
从头开始:
import requests
from bs4 import BeautifulSoup
url = 'my_site'
r = request.get (url)
re1 = BeautifulSoup (r.text, "lxml")
re2 = re1.body.find_all ('div', {'class': '._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl'})
for syntax in re2 [:]:
print (syntax)
有div的地方可以在类(a, p, h)的地方放另一个标签有div的地方可以在类(a, p, h)
的地方放另一个标签和硒,而不是'元素'使用'元素',收获时最好收集一切:D但是当你想点击一个元素或输入一些东西(send_keys()或click())时,你必须使用单个字符数,即'element'而不是'elements'
我为selenium webdriver
这样做data1 = driver.find_elements_by_class_name('class')
data2 = driver.find_elements_by_css_selector('css_selector")
if len(data1) > 0:
do something
if len(data2) > 0:
do something
如果你想看到错误是如何弹出的,你可以添加一个else, print (len (data1))或data2来查看你收集了多少数据等等。