要求到一个网站下载一个.zip文件
进去后,先选择一个项,点击submit下载,使用C#怎么实现
此文件用firebug抓抱不到下载文件的URL
下载页面如下:下载按钮在最右下角
用不来就浏览器右键
我要把这个压缩包下载后还要完成自动解压,用浏览器右键?
@你的程序有BUG: 那是代码问题,你在浏览器中获取到url 后 放到code request中,reqeust stream 然后解压就行了。
@花飘水流兮: 主要是这个文件没有超链接,只能通过选择之后点击bnt,我用firebug抓取过了,使用post来进行下载这一步骤
你是要扒这个网站的数据,还是自己要实现这个功能?
要爬的就是那两个.zip文件
这个是我写的代码
@你的程序有BUG: 方便贴下链接么
@写代码的相声演员: https://www3.orderassist.net/WebForm/SPHHSL002download.aspx
@写代码的相声演员: 这个是产生的错误
页面需要登录用户的吧,请求中需要cookie或视图状态数据,错误提示不是有嘛
模拟登陆显现过了,我打箭头的那一句就是用来登陆保持的,post数据也包含了viewState
我的viewstate太长会不会造成数据缺失?
@你的程序有BUG: 你自己监控点击按钮的操作,然后模拟请求的时候就按照点击按钮的请求头,请求体来设置,应该不会有问题,我之前也模拟请求过aspx页面,页面复杂的时候是相对麻烦点
@shangsharon: 你有没有做过类似的,从网站上把文件取下来,但是你取得那个文件是没有超链接的
@shangsharon: 我这个不是爬取页面的功能,爬取页面我会,我想做的是吧页面的两个文件下载下来,但是这两个文件抓取不到超链接,所以我想通过post的方式模拟点击btn的请求操作
@你的程序有BUG: 一般下载静态文件直接用超链接,但是也有些需要不同条件查询后动态生成文件再输出到客户端的情况,单单一个超链接肯定是不行的
这是fireBug页面
@你的程序有BUG: 点击btn后浏览器向服务端发送的数据,你能全部模拟出来就能正确得到文件流的输出,看错误信息是缺少数据的,应该是请求信息不完整
@shangsharon: 也就是说有可能firebug没有抓取完所有的post数据吗?
@你的程序有BUG: 是你没有提交完整的数据,截图看看请求标头的信息.
@你的程序有BUG: 如果可以的话,给个用户名,密码,我们登录试试
@shangsharon: post数据时viewstate应该也需要提交吧?
@shangsharon: 密码给不了呀,公司禁止(⊙o⊙)…
@你的程序有BUG: 一般需要视图数据的页面,我先是Get一下页面,然后再post,带上get得到的页面上的视图数据