如何使javascript生成的HTML可由谷歌爬虫索引?
我有一个带有标题导航的网络表单 为了生成这个标题导航,我对Java类进行了AJAX调用,并得到一个JSON字符串作为响应 我解析字符串并在jQuery中创建HTML。以下是一个例子:如何使javascript生成的HTML可由谷歌爬虫索引?,java,jquery,struts2,seo,google-crawlers,Java,Jquery,Struts2,Seo,Google Crawlers,我有一个带有标题导航的网络表单 为了生成这个标题导航,我对Java类进行了AJAX调用,并得到一个JSON字符串作为响应 我解析字符串并在jQuery中创建HTML。以下是一个例子: $(document).ready(function(){ $.ajax({ url: '/test/newHeaderJSON', dataType: 'json', type: 'GET',
$(document).ready(function(){
$.ajax({
url: '/test/newHeaderJSON',
dataType: 'json',
type: 'GET',
success: function(data, textStatus, jqXHR) {
$('ul.main-menu').append('<a href="'+ obj.header.headerItems.productMenu.link +'">' + obj.header.headerItems.productMenu.name + '</a>');
}
});
});
$(文档).ready(函数(){
$.ajax({
url:“/test/newHeaderJSON”,
数据类型:“json”,
键入:“GET”,
成功:函数(数据、文本状态、jqXHR){
$('ul.main menu')。附加(“”);
}
});
});
上面的示例显示了通过jQuery添加到页面的锚标记
现在问题来了。此锚点在页面源中不可见,因此无法爬网
我想让这个组件可以爬网
我读过关于“逃逸碎片”的书,但无论我在网上找到什么,我都无法理解它
有人能告诉我如何以一种更容易理解的方式使用这种方法吗
下面是我使用jsp struts2迭代器的另一种方法。即使在这种方法中,我也无法获得源代码上的值。该代码适用于DOM,但不适用于源代码
<html>
<head>
<script type="text/javascript">
$.get('test/newHeader');
</script>
</head>
<body>
<s:iterator value="%{menuOptions.get('Home_Improvement').productgroup}" var="productGroupVar">
<a href="<test:sRelativeUrl url='/${productGroupVar.groupId}'/>">${productGroupVar.name}</a>
</s:iterator>
</body>
</html>
$.get('test/newHeader');
此锚点在页面源中不可见,因此无法爬网
谷歌能够抓取Javascript生成的页面。因此,你的说法是不正确的。因此,如果在
sitemap.xml
中有指向该/那些页面的URL,那么就没有问题。是否真的需要通过javascript生成链接?如果你想让你的html“可爬网”,我强烈建议你在服务器端生成输出,而不是尝试破解。链接的内容来自一个内容系统。我们不知道在任何时候,会有多少链接。它可以根据业务需要随时更改。所以我们不能只在HTML上添加锚定标记,因为我们不知道会有多少锚定标记。第二种方法是在后端生成HTML,这从来都不是推荐的方法。你可能想读这篇文章:。嘿,jfriend00,我已经浏览了这个链接。但是我不能在我的情况下使用第三方,比如HtmlUnit.:(有什么理由调用ajax吗?