2017-12-19 7 views
0

私は機械的にsparklemotion(https://github.com/sparklemotion/mechanize)を使用しています。機械化:スプレッドシートをダウンロードするには

https://philjobs.org/というサイトがあります。そこでは、リンクをクリックしてスプレッドシートをダウンロードできます。

私はスプレッドシートのダウンロードを自動化しようとしています。ここに私が今いるものは次のとおりです。

require 'rubygems' 
require 'mechanize' 

agent = Mechanize.new 

agent.pluggable_parser.default = Mechanize::Download 

page = agent.get('https://philjobs.org') 

agent.page.link_with(:text => 'Download spreadsheet').click.save 

スプレッドシートを保存する代わりに、htmlが保存されます。代わりにスプレッドシートを保存するにはどうすればよいですか?

答えて

1

あなたはダウンロードスプレッドシートリンクをクリックすると、それはget方法としてはJavaScriptを使用してフォームを送信し、この

agent = Mechanize.new 
agent.pluggable_parser.default = Mechanize::Download 
url = "https://philjobs.org/jobQuery/execute?fromSavedquery=&email=&jobQuery.name=&format=csv&id=&view=On+screen+-+simple&typesToggler=Any+job+type&_jobTypes=&_jobTypes=&_jobTypes=&_jobTypes=&_jobTypes=&_jobTypes=&_jobTypes=&_jobTypes=&tenureTypesToggler=Any+contract+type&_tenureTypes=&_tenureTypes=&_tenureTypes=&_tenureTypes=&jobQuery.locationConstraint=NONE&jobQuery.institution.id=&jobQuery.institution.name=&jobQuery.institution.deleted=false&jobQuery.distance=50.0&jobQuery.city.id=&autonamejobQuerycity=&jobQuery.country=&jobQuery.region=&topicListToggler=Any+AOS&aocListToggler=Any+AOC&jobQuery.keywords=&moreOptions=&jobQuery.orderBy=Creation+time&searchFromDatePicker=&jobQuery.fromDate=date.struct&jobQuery.fromDate_day=&jobQuery.fromDate_month=&jobQuery.fromDate_year=&searchToDatePicker=&jobQuery.toDate=date.struct&jobQuery.toDate_day=&jobQuery.toDate_month=&jobQuery.toDate_year=&_withExpired=" 

agent.get(url).save('stackoverflow.csv') 

を試してみてください。上記のurlはフォームのすべての入力フィールド(パラメータ)を使用して生成されます。

関連する問題