我正在尝试抓取一个多语言的opencart网站,它没有直接链接到它的其他语言版本,这是我需要的,因为我想用所有可用的语言抓取它。它有一组javascript按钮,可以在不改变url的情况下在语言之间切换。但是当我通过crawler访问这个网站时,它只给了我一种语言。
对于爬行,我将Scrapy与Splash结合使用,因此据我所知,我需要将一段javascript代码传递给我的爬虫,然后单击按钮更改语言,然后才开始以我需要的语言呈现网页,以便进一步解析。
以下是按钮代码:
<div id="language" class="lang-opacity">
<img class="lang-active" src="http://example.com/catalog/view/theme/theme_name/image/flags/ru.png" alt="Русский" title="Русский" onclick="$('input[name=\'language_code\']').attr('value', 'ru'); $(this).parent().parent().submit();">
<img src="http://example.com/catalog/view/theme/theme_name/image/flags/ua.png" alt="Украинский" title="Украинский" onclick="$('input[name=\'language_code\']').attr('value', 'ua'); $(this).parent().parent().submit();">
<img src="http://example.com/catalog/view/theme/theme_name/image/flags/en.png" alt="English" title="English" onclick="$('input[name=\'language_code\']').attr('value', 'en'); $(this).parent().parent().submit();">
<input name="language_code" value="" type="hidden">
<input name="redirect" value="http://example.com/" type="hidden">
</div>
下面是函数本身的代码:
function onclick(event) {
$('input[name=\'language_code\']').attr('value', 'ru');
$(this).parent().parent().submit();
}
那么,我应该向爬虫传递什么样的代码来为我切换语言呢?
谢谢。
发布于 2018-08-27 02:41:48
«我应该向爬虫程序传递什么样的代码»
我假设您会通过浏览器的控制台传递它。尝试:
$("input[name='language_code']").val("ru").closest("form").submit();
只需将ru
替换为您需要的其他语言...
https://stackoverflow.com/questions/52027478
复制相似问题