【发布时间】:2015-12-21 22:19:06
【问题描述】:
我使用 Selenium 从http://www.fedsdatacenter.com/federal-pay-rates/index.php?n=&l=&a=SECURITIES+AND+EXCHANGE+COMMISSION&o=&y=all 中抓取了联邦雇员职位和薪水信息的动态 Javascript 表。 (注意:都是公共领域的数据,所以不用担心:个人信息)。
我正在尝试将其放入 Pandas DF 中进行分析。我的问题是我的 Selenium 输入数据是一个打印为的列表:
[u'DOE,JON'], [u'14'], [u'SK'], [u'$176,571.00'], [u'$2,000.00'], [u'SECURITIES AND EXCHANGE COMMISSION'], [u'WASHINGTON'], [u'GENERAL ATTORNEY'], [u'2012']], ...
我想要的是一个处理任意数量记录的 DF 如:
NAME GRADE SCALE SALARY BONUS AGENCY LOCATION POSITION YEAR
Doe, Jon 14 SK $176,571.00 $2,000.00 SEC DC ATTY 2012
.
.
.
我尝试将此列表转换为字典,使用 zip() 函数,将 col 名称作为元组,将数据作为列表等,但都无济于事,尽管这是一次很好的 Python 之旅特征。获取数据后的下一步应该是什么,或者我应该以不同的方式读取数据?
目前,爬虫代码为:
from selenium import webdriver
path_to_chromedriver = '/Users/xxx/Documents/webdriver/chromedriver' # change path as needed
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
url = 'http://www.fedsdatacenter.com/federal-pay-rates/index.php'
browser.get(url)
inputAgency = browser.find_element_by_id('a')
inputYear = browser.find_element_by_id('y')
# Send data
inputAgency.send_keys('SECURITIES AND EXCHANGE COMMISSION')
inputYear.send_keys('All')
# Select 'All' from Years element
browser.find_element_by_css_selector('input[type=\"submit\"]').click()
browser.find_element_by_xpath('//*[@id="example_length"]/label/select/option[4]').click()
SMRtable = browser.find_element_by_id('example')
scrapedData = []
for td in SMRtable.find_elements_by_xpath('.//td'):
scrapedData.append([td.get_attribute('innerHTML')])
print td.get_attribute('innerHTML')
【问题讨论】:
标签: javascript python python-2.7 pandas selenium-webdriver