使用selenium抓取javascript内容

使用selenium抓取javascript内容,javascript,python-2.7,selenium,Javascript,Python 2.7,Selenium,我正在尝试使用selenium和geckodriver从一个网站上抓取javascript内容,但我得到了任何数据。下面是javascript代码 <div _ngcontent-c2="" class="header-wrapper"> <div _ngcontent-c2="" class="title">Suda Office</div> <div _ngcontent-c2="" class="update">Jul 05

我正在尝试使用selenium和geckodriver从一个网站上抓取javascript内容,但我得到了任何数据。下面是javascript代码

<div _ngcontent-c2="" class="header-wrapper">
    <div _ngcontent-c2="" class="title">Suda Office</div>
    <div _ngcontent-c2="" class="update">Jul 05 11:07 AM</div>
</div>

<div _ngcontent-c2="">
    <div _ngcontent-c2="" class="item-row title-headers">
        <div _ngcontent-c2="" class="item-col head1">Route</div>
        <div _ngcontent-c2="" class="item-col head2">Destination</div>
        <div _ngcontent-c2="" class="item-col">
            <div _ngcontent-c2="" class="head3 head3-height">ETA</div>
        </div>
    </div>

    <div _ngcontent-c2="">
        <div _ngcontent-c2="" class="alternet-color">
            <div _ngcontent-c2="" class="item-row item-eta-row">
                <div _ngcontent-c2="" class="item-col eta-route">15 T</div>
                <div _ngcontent-c2="" class="item-col eta-destination">
                    <marquee _ngcontent-c2=""> Charbagh</marquee></div>
                <div _ngcontent-c2="" class="item-col eta-col">                
                    <div _ngcontent-c2="" class="eta-display-wrapper">
                        <div _ngcontent-c2="" class="display">
                            <span _ngcontent-c2="" class="space"></span>
                            <span _ngcontent-c2="" class="currentTiming">10 min</span>
                        </div>

                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
但是
a=[]
是输出。偶数
d=driver.find\u elements\u by\u class\u name(“currentTiming”)
给出以下输出

[<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b1f2344-8e8a-4f48-a29a-54610179d62f", element="38e7ce58-ea66-4461-bee7-f81ac414595b")>]
[]

如何使用selenium从页面获得正确的输出?

问题可能出在
项目col eta route
类名上。在HTML中可以有数百个这样的类

您可以尝试使用此css选择器来代替:

div[_ngcontent-c2][class='item-col eta-route'] 
获取15 T

引入webdriver wait将是提高脚本稳定性的好主意

wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[_ngcontent-c2][class='item-col eta-route']")))
print(element.text)  
用于提取值:

marquee_text = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[_ngcontent-c2][class='item-col eta-destination'] marquee")))
print(marquee_text.text)    
您需要导入以下内容:

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

问题可能出在
项目col eta route
类名上。在HTML中可以有数百个这样的类

您可以尝试使用此css选择器来代替:

div[_ngcontent-c2][class='item-col eta-route'] 
获取15 T

引入webdriver wait将是提高脚本稳定性的好主意

wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[_ngcontent-c2][class='item-col eta-route']")))
print(element.text)  
用于提取值:

marquee_text = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[_ngcontent-c2][class='item-col eta-destination'] marquee")))
print(marquee_text.text)    
您需要导入以下内容:

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

如果有多个
class=“item col eta destination”
,该怎么办?我会使用上面的代码获取所有这些元素吗?看看HTML dom结构中是否有多个条目,然后selenium将选择第一个元素。您可以使用此css选择器
div[\u ngcontent-c2][class='item-col eta destination']
,让我知道这是否有用。如果有多个
class='item col eta destination'
?我会用上面的代码得到它们吗?看看HTML dom结构中是否有多个条目,然后selenium将选择第一个元素。你可以使用这个css选择器
div[\u ngcontent-c2][class='item-col eta destination']
,让我知道这是否有用。