2016-03-05 2 views
0

Я хочу, чтобы загрузить данные из Yahoo Finance http://finance.yahoo.com/q/hp?s=^TWII&a=00&b=15&c=2004&d=11&e=4&f=2015&g=mSCRAPY: как ввести аргумент в пустом пространстве

Я хочу, чтобы программа типа «2004» в год пространстве начала и «2015» в конце года пространство. Как я могу это сделать?

Мои коды выглядеть следующим образом:

import scrapy 
from selenium import webdriver 
import time 
from scrapy.selector import Selector 
from scrapy.selector import HtmlXPathSelector 
from taiex.items import taiexItem 
import unicodecsv as csv 

class taiex_spider(scrapy.Spider): 
    name = 'taiex_spider' 
    allowed_domains = ['finance.yahoo.com/'] 
    start_urls = ['http://finance.yahoo.com/q/hp?s=^TWII&a=00&b=15&c=2004&d=11&e=4&f=2015&g=m'] 

    def __init__(self): 
     self.driver = webdriver.Firefox() 

    def parse(self, response): 
     items = [] 
     item = taiexItem() 
     driver = self.driver 
     driver.get(response.url) 
     driver.find_element_by_css_selector('select[id="selstart"]>option[value="00"]').click() 
     driver.find_element_by_css_selector('select[id="selend"]>option[value="11"]').click() 

     driver.find_element_by_xpath('//input[@id="monthly"]').click() 
     driver.find_element_by_xpath('//input[@class="rapid-nf"]').click() 
     driver.find_element_by_partial_link_text('Download to Spreadsheet').click() 
+0

Вы можете сделать все это без селена только с помощью Scrapy, есть даже CSV они предоставляют, что вы можете скачать http://stackoverflow.com/questions/35438381/how-to-import-a-table-with-headings-to-a-data-frame-using-pandas-module/35441264 # 35441264. Существует также Yahoo json apihttp: //stackoverflow.com/a/35541497/2141635 –

ответ

1

Найдите нужные входные элементы по идентификатору и отправить ключи к ним:

start_year = driver.find_element_by_id("startyear") 
start_year.clear() 
start_year.send_keys("2004") 

end_year = driver.find_element_by_id("endyear") 
end_year.clear() 
end_year.send_keys("2015") 
+0

Спасибо! Это сработало! –

Смежные вопросы