spa*_*ort 6 javascript python mechanize urllib web-crawler
我正在尝试使用Python 在网站(http://bibliotecadigitalhispanica.bne.es)上自动下载一些PDF .
我已经尝试使用urllib/urllib2/mechanize模块(我一直用于其他网站:这包括标准函数,如urlopen,urlretrieve等),但是在这里,链接嵌入了他们的href属性中的JavaScript一些处理和打开PDF,这些模块似乎无法处理,至少从我在这里读到的.例如,当我执行以下操作时:
request = mechanize.Request('the example url below')
response = mechanize.urlopen(request)
Run Code Online (Sandbox Code Playgroud)
它只是回到包含HTML页面 - 我似乎无法提取PDF(该页面内也没有链接).
我知道通过查看真实浏览器中的标题(使用Firefox中的LiveHTTPHeaders扩展名),可以发出大量HTTP请求并最终返回PDF(并在浏览器中显示).我希望能够拦截并下载它.具体来说,我得到一系列302和304响应,最终导致PDF.
以下是我正在抓取的链接属性示例:href ='javascript:open_window_delivery(" http://bibliotecadigitalhispanica.bne.es:80/verylonglinktoaccess ");'
似乎如果我执行嵌入在href属性中的这个JavaScript,我最终可以到达PDF文档本身.我尝试过使用硒,但这有点令人困惑 - 我不太确定如何在阅读其文档时使用它.有人可以建议一种方式(通过我没有尝试过的模块或我通过的模块),我可以这样做吗?
非常感谢您对此的任何帮助.
PS:如果你想看看我想要复制什么,我试图访问下面提到的PDF链接(带有PDF图标的那些):):http: //bibliotecadigitalhispanica.bne.es/R/9424CFL1MDQGLGBB98QSV1HFAD2APYDME4GQKCBSLXFX154L4G-01075?FUNC =集合-结果&collection_id = 1356
javascript:open_window_delivery("http://bibliotecadigitalhispanica.bne.es:80/webclient/DeliveryManager?application=DIGITOOL-3&owner=resourcediscovery&custom_att_2=simple_viewer&forebear_coll=1333&user=GUEST&pds_handle=&pid=1673416&con_lng=SPA&rd_session=http://bibli otecadigitalhispanica.bne.es :80/R/7IUR42HNR5J19AY1Y3QJTL1P9M2AN81RCY4DRFE8JN5T22BI7I-03416");
该 URL 会指向 302 页面。如果您遵循它,您最终会看到一个框架页面,其中底部框架是内容页面。
(lib)curl 可以跟随 302 页。
到目前为止,Javascript 还不是问题。然后您将进入 single_viewer_toolbar2.jsp,其中函数 setLabelMetadataStream 将 pdf 的 url 组合在一起,然后将其提交到其 iframe“sendRequestIFrame”。
我看到三种可能性:
我建议更多地了解 Selenium,它似乎是最简单的。
| 归档时间: |
|
| 查看次数: |
1551 次 |
| 最近记录: |