【发布时间】:2015-10-08 22:36:56
【问题描述】:
我正在尝试使用一些 Python 网络爬虫从网站下载大约 3000 个 PDF。但是,这些 PDF 的 URL 是由 JavaScript 函数生成的。所以,我想知道是否有任何关于如何实现这一点的教程?
例如链接到Alberto European Hairspray (Aerosol) - All Variants的URL会在点击onclick="javascript:__doPostBack('ctl00$placeBody$gridView$gridView','DocumentCenter.aspx?did={0}$0&#39后生成。
所以问题是如何让网络爬虫获取计算出来的 URL。
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
<tbody>
<tr>
<td>
<input type="image" src="App_Graphics/PDFDocument.gif" alt="MSDS" onclick="javascript:__doPostBack('ctl00$placeBody$gridView$gridView','DocumentCenter.aspx?did={0}$0');return false;" />
</td>
<td><a href="javascript:__doPostBack('ctl00$placeBody$gridView$gridView','MSDSDetail.aspx?did={0}$0')">Alberto European Hairspray (Aerosol) - All Variants</a>
</td>
<td>Unilever PLC</td>
<td>8131-01</td>
</tr>
<tr class="row-alternate">
<td>
<input type="image" src="App_Graphics/PDFDocument.gif" alt="MSDS" onclick="javascript:__doPostBack('ctl00$placeBody$gridView$gridView','DocumentCenter.aspx?did={0}$1');return false;" />
</td>
<td><a href="javascript:__doPostBack('ctl00$placeBody$gridView$gridView','MSDSDetail.aspx?did={0}$1')">Alberto European Mousse (Aerosol) - All Variants</a>
</td>
<td>Unilever PLC</td>
<td>8132-01</td>
</tr>
</tbody>
【问题讨论】:
标签: javascript python web-scraping