.net 解决spider多次和重复抓取的方案
程序员文章站
2024-02-22 10:39:04
原因:
早期由于搜索引擎蜘蛛的不完善,蜘蛛在爬行动态的url的时候很容易由于网站程序的不合理等原因造成蜘蛛迷路死循环。
所以蜘蛛为了避免之前现象就不读取动态的url,特...
原因:
早期由于搜索引擎蜘蛛的不完善,蜘蛛在爬行动态的url的时候很容易由于网站程序的不合理等原因造成蜘蛛迷路死循环。
所以蜘蛛为了避免之前现象就不读取动态的url,特别是带?的url
解决方案:
1):配置路由
复制代码 代码如下:
routes.maproute("rentofficelist",
"rentofficelist/{aredid}-{priceid}-{acreageid}-{sortid}-{sortnum}.html",
new { controller = "home", action = "rentofficelist" },
new[] { "mobile.controllers" });
第一个参数是路由名称
第二个参数是路由的url模式,参数之间用{}-{}方式分隔
第三个参数是一个包含默认路由的对象
第四个参数是应用程序的一组命名空间
2):设置连接
<a href="@url.action("rentofficelist",new routevaluedictionary { { "aredid",0},{"priceid",0},{"acreageid",0},{"sortid",0},{"sortnum",0}})">默认排序</a>
对照上面的url模式,依次写入参数赋值
3):获取参数
复制代码 代码如下:
int areaid = getrouteint("aredid");//获取参数
/// <summary>
/// 获得路由中的值
/// </summary>
/// <param name="key">键</param>
/// <param name="defaultvalue">默认值</param>
/// <returns></returns>
protected int getrouteint(string key, int defaultvalue)
{
return convert.toint32(routedata.values[key], defaultvalue);
}
/// <summary>
/// 获得路由中的值
/// </summary>
/// <param name="key">键</param>
/// <returns></returns>
protected int getrouteint(string key)
{
return getrouteint(key, 0);
}
根据上面3个步骤操作,显示的url地址为:
这样就可以避免静态页面上使用动态参数,显示的页面都为静态页面
推荐阅读
-
.net 解决spider多次和重复抓取的方案
-
.net 解决spider多次和重复抓取的方案
-
我们可以使用Phalanger创建组合.NET和PHP的解决方案_PHP教程
-
我们可以使用Phalanger创建组合.NET和PHP的解决方案
-
我们可以使用Phalanger创建组合.NET和PHP的解决方案
-
(高并发)防止重复点击,屏蔽多次无效请求的解决方案(优惠劵被重复领取,恶意撸羊毛)
-
UiBot 无法抓取 Google Chrome 元素 和 数据抓取工具无法使用 的解决方案 chromeuibot数据抓取
-
我们可以使用Phalanger创建组合.NET和PHP的解决方案_PHP教程
-
(高并发)防止重复点击,屏蔽多次无效请求的解决方案(优惠劵被重复领取,恶意撸羊毛)
-
UiBot 无法抓取 Google Chrome 元素 和 数据抓取工具无法使用 的解决方案 chromeuibot数据抓取