Python 使用selenium和PhantomJS刮表

Python 使用selenium和PhantomJS刮表,python,selenium,web-scraping,phantomjs,Python,Selenium,Web Scraping,Phantomjs,我正在努力清理下表: 当我使用chrome web驱动程序时,我的代码正常工作,但是当使用PhantomJS驱动程序时,输出似乎没有得到数字,它只得到文本 我的Python代码如下: from selenium import webdriver path_to_chromedriver = '/Users/amr_f/Desktop/chromedriver' # change path as needed browser = webdriver.PhantomJS('/home/

我正在努力清理下表:

当我使用chrome web驱动程序时,我的代码正常工作,但是当使用PhantomJS驱动程序时,输出似乎没有得到数字,它只得到文本

我的Python代码如下:

    from selenium import webdriver

path_to_chromedriver = '/Users/amr_f/Desktop/chromedriver' # change path as needed
browser = webdriver.PhantomJS('/home/ubuntu/phantomjs-2.1.1-linux-x86_64/bin/phantomjs')
url = 'http://www.cibeg.com/English/Pages/default.aspx'
browser.get(url)

browser.find_element_by_xpath('//*[@id="sliderHome"]/div[2]/div/ul/li[3]/a').click()

data = []

for tr in browser.find_elements_by_xpath('//*[@id="divCurrTableContainer"]/table'):
    tds = tr.find_elements_by_tag_name('td')
    if tds: 

        data.append([td.text for td in tds])
print(data)

通过添加,
browser.set_window_size(1124850)
,为PhantomJS驱动程序设置窗口大小,我能够从页面检索表的数据

如果我没有记错的话,就会发生这种情况,因为某些javascript库使用“加载”窗口的大小。没有windowsize参数可能会导致例程无法正确加载页面上的所有元素

from selenium import webdriver


browser = webdriver.PhantomJS('/home/ubuntu/phantomjs-2.1.1-linux-x86_64/bin/phantomjs')
browser.set_window_size(1124, 850)
url = 'http://www.cibeg.com/English/Pages/default.aspx'
browser.get(url)    
browser.find_element_by_xpath('//*[@id="sliderHome"]/div[2]/div/ul/li[3]/a').click()    
data = []

for tr in browser.find_elements_by_xpath('//*[@id="divCurrTableContainer"]/table'):
    tds = tr.find_elements_by_tag_name('td')
    if tds:     
        data.append([td.text for td in tds])

print(data)
添加窗口大小后,我能够检索:

[['USD', '16.26', '16.75', 'EUR', '17.6696', '18.3563', 'GBP', '20.0895', '20.8621', 'CHF', '16.4571', '17.0536', 'SAR', '4.3297', '4.4663', 'KWD', '53.5202', '55.3353']]

通过添加,
browser.set_window_size(1124850)
,为PhantomJS驱动程序设置窗口大小,我能够从页面检索表的数据

如果我没有记错的话,就会发生这种情况,因为某些javascript库使用“加载”窗口的大小。没有windowsize参数可能会导致例程无法正确加载页面上的所有元素

from selenium import webdriver


browser = webdriver.PhantomJS('/home/ubuntu/phantomjs-2.1.1-linux-x86_64/bin/phantomjs')
browser.set_window_size(1124, 850)
url = 'http://www.cibeg.com/English/Pages/default.aspx'
browser.get(url)    
browser.find_element_by_xpath('//*[@id="sliderHome"]/div[2]/div/ul/li[3]/a').click()    
data = []

for tr in browser.find_elements_by_xpath('//*[@id="divCurrTableContainer"]/table'):
    tds = tr.find_elements_by_tag_name('td')
    if tds:     
        data.append([td.text for td in tds])

print(data)
添加窗口大小后,我能够检索:

[['USD', '16.26', '16.75', 'EUR', '17.6696', '18.3563', 'GBP', '20.0895', '20.8621', 'CHF', '16.4571', '17.0536', 'SAR', '4.3297', '4.4663', 'KWD', '53.5202', '55.3353']]