用于JavaScript生成URL的Python Web爬虫
我正在尝试使用一些Python网络爬虫从一个网站下载大约3000个PDF。但是,这些PDF的URL是由JavaScript函数生成的。所以,我想知道有没有关于如何实现这一点的教程 例如,链接到阿尔伯托欧洲发胶(气溶胶)的URL—所有变体都将在单击用于JavaScript生成URL的Python Web爬虫,javascript,python,web-scraping,Javascript,Python,Web Scraping,我正在尝试使用一些Python网络爬虫从一个网站下载大约3000个PDF。但是,这些PDF的URL是由JavaScript函数生成的。所以,我想知道有没有关于如何实现这一点的教程 例如,链接到阿尔伯托欧洲发胶(气溶胶)的URL—所有变体都将在单击onclick=“javascript:”doPostBack(';ctl00$placeBody$gridView$gridView';';DocumentCenter.aspx?did={0}$0'&code>后生成。 所
onclick=“javascript:”doPostBack(';ctl00$placeBody$gridView$gridView';';DocumentCenter.aspx?did={0}$0'&code>后生成。
所以问题是如何让网络爬虫获得计算出的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>
函数\uuu doPostBack(事件目标,事件参数){
if(!theForm.onsubmit | |(theForm.onsubmit()!=false)){
格式为.\uuu EVENTTARGET.value=EVENTTARGET;
格式为.\uuu EVENTARGUMENT.value=EVENTARGUMENT;
submit()格式;
}
}
联合利华
8131-01
联合利华
8132-01
您不能。请使用JavaScript解释器(例如)执行代码,然后继续进行HTML解析。使用Qt的WebKit也是一种很好的方法,但速度可能较慢。另一种选择是,您可以使用Selenium来获取计算的URL。@tao.hong不客气。我也有同样的问题,我知道这有点令人失望:p