【发布时间】:2020-05-08 08:20:32
【问题描述】:
我查看了很多关于使用 python 在网页上单击按钮的建议,但不完全理解示例在做什么并且无法让它们工作(尤其是值的排序和组合) .
我正在尝试从网站下载 PDF。 第一次单击 PDF 进行下载时,它会将您带到一个页面,您必须单击“同意并继续”。一旦你这样做了,浏览器就会存储 cookie(所以你永远不需要再次同意),然后在浏览器中打开 PDF(这是我要下载的)。
这是接受页面的链接 - https://www.asx.com.au/asx/statistics/displayAnnouncement.do?display=pdf&idsId=02232753"
我使用 Chrome 开发者来获得这个:-
<form name="showAnnouncementPDFForm" method="post" action="announcementTerms.do">
<input value="Decline" onclick="window.close();return false;" type="submit">
<input value="Agree and proceed" type="submit">
<input name="pdfURL" value="/asxpdf/20200506/pdf/44hlvnb8k3n3f8.pdf" type="hidden">
</form>
这是您到达的最后一页:-“https://www.asx.com.au/asxpdf/20200506/pdf/44hlvnb8k3n3f8.pdf”
然后尝试像这样使用它:-
import requests
values = {}
values['showAnnouncementRDFForm'] = 'announcementTerms.do'
values['pdfURL'] = '/asxpdf/20200506/pdf/44hlvnb8k3n3f8.pdf'
req = requests.post('https://asx.com.au/', data=values)
print(req.text)
我尝试了各种 URL 并更改了我提供的值,但我认为它不能正常工作。 最后的打印为我提供了看起来像 HTML 表单的网页。我不确定它到底是什么,因为我是从我连接到(Pi)的服务器的命令行中执行此操作的。但我相信这不是我想要的 PDF。
作为最终解决方案,我希望 python 代码执行的是获取 PDF 链接,自动同意并继续,将 cookie 存储为 next 以避免将来的批准,然后下载 PDF。
希望这是有道理的,感谢您花时间阅读我的问题。
马库斯
【问题讨论】:
标签: python web-scraping python-requests