使用Ruby机械化我已成功提交输入值的形式和我能够根据搜索条件,以获得最终页面HREF链接。由此产生的页面有PDF文件作为我需要下载的ahref链接。 属性HREF具有值:下载PDF文件是使用红宝石机械化
HREF ='xxx.do FILENAME =路径/ abc.pdf & SEARCHTEXT = AAA & ID = 123_4
其中SEARCHTEXT是输入的文本作为输入最初?。当我手动点击链接pdf时,在 网址为http://someip:8080/xxx/temp/123_4的新窗口中打开,这是在href属性中看到的相同ID。但实际的文件名不同,格式为xxx.123_2_.doc。我下面的代码返回0字节的文件 -
scraper.pluggable_parser.pdf = Mechanize::FileSaver
File.open('n1pdf.pdf', 'wb'){|f| f << scraper.get(alink).body}
其中ALINK = http://someip:8080/xxx/temp/123_4 如果我使用
File.open("new.pdf", "w") do |f|
uri = URI(alink)
f << Net::HTTP.get(uri)
end
我得到HTTP未找到错误。 我不知道如果我这样做是正确的。是ID处理动态生成的,因为所得到的页面上的所有的PDF文件具有该ID与_1/2/3作为文件名(或URL)的会话ID。
请注意,每当我手动点击并打开一个PDF文件,然后铁杆,在我的代码的文件下载,但没有当我的代码中动态提取ID值,并分配给ALINK。不确定这是否与Cookie相关。请帮助。谢谢。
谢谢。有用 – user6733460