我正在尝试抓取多语言的opencart网站,该网站没有直接链接到其其他语言版本,我需要这样做,因为我想以所有可用语言抓取它。它具有一组javascript按钮,可在不更改url的情况下在语言之间切换。但是,当我通过搜寻器访问此网站时,它只会给我一种语言。
对于抓取,我将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();
}
那我应该传递给搜寻器什么样的代码来为我切换语言?
谢谢。
答案 0 :(得分:0)
«我应该将哪种代码传递给我的搜寻器»
我假设您将通过浏览器的控制台传递它。试试:
$("input[name='language_code']").val("ru").closest("form").submit();
然后将ru
替换为您需要的其他语言...