试图在python中的元素中查找id

试图在python中的元素中查找id,python,python-3.x,selenium,Python,Python 3.x,Selenium,我需要帮助 我正在打印网站上的链接, 下面是代码的外观: <div class="tabla_szoveg"> <div style="cursor:pointer" onclick="konyvjelzo('1523442');" class="torrent_konyvjelzo2"></div> 但是一个也得不到 谢谢我想你可以用简单的正则表达式轻松找到它 ids = re.findall("onclick=\"konyvjel

我需要帮助

我正在打印网站上的链接, 下面是代码的外观:

<div class="tabla_szoveg">
            <div style="cursor:pointer" onclick="konyvjelzo('1523442');" class="torrent_konyvjelzo2"></div>
但是一个也得不到
谢谢

我想你可以用简单的正则表达式轻松找到它

ids = re.findall("onclick=\"konyvjelzo\('(.*?)'\);",page_text)

我想你可以用简单的正则表达式很容易地找到它

ids = re.findall("onclick=\"konyvjelzo\('(.*?)'\);",page_text)
要打印onclick事件的部分值,即1523442,您必须诱导WebDriverWait以获得所需的
元素位置的可见性,并且您可以使用以下解决方案:

  • 使用
    CSS\u选择器

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.tabla_szoveg>div.torrent_konyvjelzo2"))).get_attribute("onclick").split("'")[1])
    
  • 使用
    XPATH

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[class='tabla_szoveg']/div[@class='torrent_konyvjelzo2']"))).get_attribute("onclick").split("'")[1])
    
要打印onclick事件的部分值,即1523442您必须诱导WebDriverWait以获得所需的
元素的可见性()
,并且您可以使用以下解决方案:

  • 使用
    CSS\u选择器

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.tabla_szoveg>div.torrent_konyvjelzo2"))).get_attribute("onclick").split("'")[1])
    
  • 使用
    XPATH

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[class='tabla_szoveg']/div[@class='torrent_konyvjelzo2']"))).get_attribute("onclick").split("'")[1])
    

请检查
torrent\u konyvjelzo2
是否是动态的,如果不是,您也可以用它替换下面的
torrent
文本,否则您可以按原样使用下面的代码

拆分(“””[1]用于拆分您的
konyvjelzo('1523442')文本

konyvjelzo( --> item 0
1523442     --> item 1
);          --> item 2
第一项索引从0开始。所以我们可以退回1件

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//div[contains(@class, 'torrent')]")))
attribute=element.get_attribute("onclick")
print attribute.split("'")[1] 

请检查
torrent\u konyvjelzo2
是否是动态的,如果不是,您也可以用它替换下面的
torrent
文本,否则您可以按原样使用下面的代码

拆分(“””[1]用于拆分您的
konyvjelzo('1523442')文本

konyvjelzo( --> item 0
1523442     --> item 1
);          --> item 2
第一项索引从0开始。所以我们可以退回1件

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//div[contains(@class, 'torrent')]")))
attribute=element.get_attribute("onclick")
print attribute.split("'")[1] 

(友好而不攻击ncore)尝试使自动bot:D(友好而不攻击ncore)尝试使自动bot:dgeting错误:TypeError:findall()缺少1个必需的位置参数:“string”获取错误:TypeError:findall()缺少1个必需的位置参数:“string”有效,非常抱歉,还有一个问题,如果我想以这种格式添加数字,该怎么办:例如:“google.com/”+number+“/download”对不起,还有一个问题,如果我想以这种格式添加数字,该怎么办:例如:“google.com/”+number+“/download”@perzsa Of rough,应该也可以。在这种情况下,不要打印数字,而是将其存储为一个变量。再次感谢您对我的帮助如此之多,感谢您如此之多。对不起,还有一个问题,如果我想以这种格式添加数字,该怎么办:例如:“google.com/”+number+“/download”对不起,还有一个问题,如果我想以这种格式添加数字,该怎么办:例如:“google.com/”+number”+“/download”@perzsa的粗糙度也应该可以。在这种情况下,不要打印数字,而是将其存储为变量。再次感谢您对我的帮助