Python通过iFrames直接链接阻塞,我还能得到二进制文件吗?

2024-04-20 01:29:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个scraper脚本,可以从发布者的网站上提取二进制内容。它的建立是为了取代人工保存数百个个人pdf文件的做法,而其他明智的同事则必须这样做。你知道吗

这些网站是基于凭据的,我们拥有收集此内容的正确凭据和权限。你知道吗

我遇到了一个网站,有一个iFrame内的pdf文件。你知道吗

我可以从HTML中提取内容URL。当我将URL提供给content grabber时,我收集了一小块HTML,上面写着:<html><body>Forbidden: Direct file requests are not allowed.</body></html>

我可以将URL直接输入浏览器,PDF文件可以正确解析。你知道吗

我假设有一个会话cookie(或者别的什么,我对这个术语不是100%熟悉)与请求一起发送,以表明GET请求来自实时会话,而不是远程链接。你知道吗

我查看了引用的URL,看到这些不同的URL指向我在一天的测试中收集的同一篇文章(我已经从URL中删除了标识符):-

http://content_provider.com/NDM3NTYyNi45MTcxODM%3D/elibrary//title/issue/article.pdfhttp://content_provider.com/NDM3NjYyMS4wNjU3MzY%3D/elibrary//title/issue/article.pdfhttp://content_provider.com/NDM3Njc3Mi4wOTY3MDM%3D/elibrary//title/issue/article.pdfhttp://content_provider.com/NDM3Njg3Ni4yOTc0NDg%3D/elibrary//title/issue/article.pdf

这表明URL中有一些东西是唯一的,需要与其他东西关联以绕过直接链接检测器。你知道吗

关于如何解决这个问题有什么建议吗?你知道吗


Tags: 文件comhttpurl内容pdftitle网站
1条回答
网友
1楼 · 发布于 2024-04-20 01:29:47

好的。答案是Cookies和headers。我通过httpfox收集了get头信息,并在脚本中创建了一个相同的头对象,然后从请求.cookie每次请求都会发送cookie。你知道吗

为了更好地衡量,我还将用户代理设置为已知的工作浏览器代理,以防服务器检查代理的详细信息。你知道吗

很好用。你知道吗

相关问题 更多 >