簡體   English   中英

重定向后使用Ruby Mechanize下載XLS文件時出現無法解釋的不一致

[英]Unexplained Inconsistency when Downloading an XLS file with Ruby Mechanize after redirect

我有一個訪問fcc.gov的腳本,然后單擊一個觸發下載的鏈接:

require "mechanize"

docket_number = "12-268" #"96-128"

url = "http://apps.fcc.gov/ecfs/comment_search/execute?proceeding=#{docket_number}"
agent = Mechanize.new
agent.pluggable_parser.default = Mechanize::DirectorySaver.save_to 'downloads'

agent.get(url) do |page|
    link = page.link_with(:text => "Export to Excel file")
    xls = agent.click(link)
end

docket_number為“ 12-268”時,這可以正常工作。 但是,當您將其更改為“ 96-128”時,Mechanize將下載頁面的html而不是所需的電子表格。

兩個頁面的URL為:

如您所見,如果您在瀏覽器中訪問每個頁面(我使用的是Chrome),然后單擊“導出到Excel文件”,則將下載電子表格文件,並且沒有問題。 “ 96-128”具有更多行,因此,單擊“導出”鏈接時,它將帶您到一個新頁面,該頁面每10秒左右刷新一次,直到文件開始下載為止。 我該如何解決這個問題,為什么會有這種不一致之處?

單擊96-128上的“導出”會將您帶到使用這種標簽刷新的頁面(我之前從未聽說過):

<meta http-equiv="refresh" content="5;url=/ecfs/comment_search/export?exportType=xls"/>

默認情況下,Mechanize將不遵循這些刷新。 為了解決這個問題,請更改agent的設置:

agent.follow_meta_refresh = true

資料來源: https : //stackoverflow.com/a/2166480/94154

進行中的12-268有48個條目,96-128有4046條目。當我單擊后者上的“導出到Excel文件”時,有時會有一個頁面說:

完成4046條記錄中的933條。 如果此頁面沒有自動重新加載,請單擊。

我想機械化也看到了這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM