python代码可以内嵌在asp文件中_内嵌PDF-vi的Python抓取ASP网站

在这里的第一个帖子,任何帮助将不胜感激:)。

我试着从一个嵌入了pdf浏览器的网站上抓取。据我所知,没有办法直接下载PDF文件。在

浏览器将pdf显示为多个PNG图像文件,问题是PNG文件也不能直接访问。它们将从原始pdf渲染,然后显示出来。在

去掉标题的URL在代码块中。在

pdf查看器的原始URL(我使用第二个URL)和呈现pdf的链接都包含在代码中。在

我的策略是使用urllib获取viewstate和eventvalidation,然后使用wget从站点下载所有文件。这个方法在没有post数据的情况下也能工作(第1页)。我从fiddler(嗅探工具)获得其余参数

但是当我使用post数据来指定页面时,我在下载图像文件时会遇到405个这样的错误。但是,它下载实际的html页面没有问题,只是没有附带的png文件。下面是wget错误的一个示例。在

HTTP请求已发送,正在等待响应。。。405方法不允许

2014-03-27 17:09:38错误405:方法不允许。在

因为我不能直接访问图像文件链接,所以我认为用wget获取整个页面是我的最佳选择。如果有人知道更好的选择,请告诉我:)。由于下载的html文件被设置为我在参数中指定的页面,post数据似乎至少部分地起作用。在

根据fiddler的说法,网站会自动对图像文件执行get请求。不过,我不太确定如何模仿这一点。在

感谢您的帮助,谢谢您的时间!在imglink = 'http://201.150.36.178/consultaexpedientes/render/2132495e-863c-4b96-8135-ea7357ff41511.png'

origurl = 'http://201.150.36.178/consultaexpedientes/sistemas/boletines/wfBoletinVisor.aspx?tomo=1&numero=9760&fecha=14/03/2014%2012:40:00'

url = 'http://201.150.36.178/consultaexpedientes/usercontrol/Default.aspx?name=e%3a%5cBoletinesPdf%5c2014%5c3%5cBol_9760.pdf%7c0'

f = urllib2.urlopen(url)

html = f.read()

soup = BeautifulSoup(html)

eventargs = soup.findAll(attrs={'type':'hidden'})

reValue = re.compile(r'value=\"(.*)\"', re.DOTALL)

viewstate = re.findall(reValue, str(eventargs[0]))[0]

validation = re.findall(reValue, str(eventargs[1]))[0]

params = urllib.urlencode({'__VIEWSTATE':viewstate,

'__EVENTVALIDATION':validation,

'PDFViewer1$PageNumberTextBox':6,

'PDFViewer1_BookmarkPanelScrollX':0,

'PDFViewer1_BookmarkPanelScrollY':0,

'PDFViewer1_ImagePanelScrollX' : 0,

'PDFViewer1_ImagePanelScrollY' : 0,

'PDFViewer1$HiddenPageNumber':6,

'PDFViewer1$HiddenAplicaMarcaAgua':0,

'PDFViewer1$HiddenBrowserWidth':1920,

'PDFViewer1$HiddenBrowserHeight':670,

'PDFViewer1$HiddenPageNav':''})

command = '/usr/bin/wget -E -H -k -K -p --post-data=\"%s' % params + '\" ' + url

print command

os.system(command)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值