如何找到下载文件的URL?
How can I find the URL that downloads a file?
我正在开发网络抓取工具,我需要从页面下载 .pdf
文件。我可以从 html 标签中获取文件名,但找不到下载该文件的完整 url(或请求正文)。
我尝试使用 chrome 和 firefox 网络流量工具以及 wireshark 嗅探流量,但没有成功。我可以看到它向与页面本身完全相同的 url 发出 post 请求,所以我不明白为什么会这样。我的猜测是文件名是在 POST 请求正文中发送的,但我也无法在这些工具中找到该信息。如果我能在正文中看到变量名,我就可以创建请求的副本,然后获取文件。
我怎样才能得到这些信息?
编辑:对于那些想做类似事情的人,请查看此网站:http://curl.trillworks.com/
它将 cURL 转换为 python 请求代码。很有用
请求使用的POST数据是由ASP.NET生成的编码内容。它包含 link 所在页面的各种 state/session 信息。这使得很难直接抓取 URL.
您可以通过从 Chrome DevTools 的“网络”选项卡导出 HAR 来检查它:
__EVENTVALIDATION
数据用于确保客户端引发的事件源自服务器页面上呈现的控件。
您可以通过先请求 link 所在的页面来实现您想要的效果,然后从响应中提取所需的 POST 数据(包含页面状态和嵌入式请求文件),然后使用此信息发出新请求。这假设服务器在此期间没有使任何会话过期。
我正在开发网络抓取工具,我需要从页面下载 .pdf
文件。我可以从 html 标签中获取文件名,但找不到下载该文件的完整 url(或请求正文)。
我尝试使用 chrome 和 firefox 网络流量工具以及 wireshark 嗅探流量,但没有成功。我可以看到它向与页面本身完全相同的 url 发出 post 请求,所以我不明白为什么会这样。我的猜测是文件名是在 POST 请求正文中发送的,但我也无法在这些工具中找到该信息。如果我能在正文中看到变量名,我就可以创建请求的副本,然后获取文件。
我怎样才能得到这些信息?
编辑:对于那些想做类似事情的人,请查看此网站:http://curl.trillworks.com/
它将 cURL 转换为 python 请求代码。很有用
请求使用的POST数据是由ASP.NET生成的编码内容。它包含 link 所在页面的各种 state/session 信息。这使得很难直接抓取 URL.
您可以通过从 Chrome DevTools 的“网络”选项卡导出 HAR 来检查它:
__EVENTVALIDATION
数据用于确保客户端引发的事件源自服务器页面上呈现的控件。
您可以通过先请求 link 所在的页面来实现您想要的效果,然后从响应中提取所需的 POST 数据(包含页面状态和嵌入式请求文件),然后使用此信息发出新请求。这假设服务器在此期间没有使任何会话过期。