.net 解决spider多次和重复抓取的方案

原因:

早期由于搜索引擎蜘蛛的不完善,蜘蛛在爬行动态的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地址为:

http://localhost:3841/rentofficelist/3-0-0-0-0.html
这样就可以避免静态页面上使用动态参数,显示的页面都为静态页面

(0)

相关推荐

  • javascript SpiderMonkey中的函数序列化如何进行

    在Javascript中,函数可以很容易的被序列化(字符串化),也就是得到函数的源码.但其实这个操作的内部实现(引擎实现)并不是你想象的那么简单.SpiderMonkey中一共使用过两种函数序列化的技术:一种是利用反编译器(decompiler)将函数编译后的字节码反编译成源码字符串,另一种是在将函数编译成字节码之前就把函数源码压缩并存储下来,用到的时候再解压还原. 如何进行函数序列化 在SpiderMonkey中,能将函数序列化的方法或函数有三个:Function.prototype.toSt

  • .net 解决spider多次和重复抓取的方案

    原因: 早期由于搜索引擎蜘蛛的不完善,蜘蛛在爬行动态的url的时候很容易由于网站程序的不合理等原因造成蜘蛛迷路死循环. 所以蜘蛛为了避免之前现象就不读取动态的url,特别是带?的url 解决方案: 1):配置路由 复制代码 代码如下: routes.MapRoute("RentofficeList",                "rentofficelist/{AredId}-{PriceId}-{AcreageId}-{SortId}-{SortNum}.html&qu

  • PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)

    方法一: 在php中,抓取https的网站,提示如下的错误内容: Warning: file_get_contents() [function.file-get-contents]: failed to open stream: Invalid argument in I:Webmyphpa.php on line 16 打开php.ini文件找到 ;extension=php_openssl.dll ,去掉双引号";" ,重启web服务器即可. apache服务器的话,可以同时启用m

  • Scrapy抓取京东商品、豆瓣电影及代码分享

    1.scrapy基本了解 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘, 信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取(更确切来说,网络抓取)所设计的,也可以应用在获取API所返回的数据(比如Web Services)或者通用的网络爬虫. Scrapy也能帮你实现高阶的爬虫框架,比如爬取时的网站认证.内容的分析处理.重复抓取.分布式爬取等等很复杂的事. Scrapy主要包括了以下组件: 引擎(Scrapy): 用来处理整个系统的数据流

  • PHP抓取远程图片(含不带后缀的)教程详解

    一.创建项目 作为演示,我们在www根目录创建项目grabimg,创建一个类GrabImage.php和一个index.php. 二.编写类代码 我们定义一个和文件名相同的类:GrabImage class GrabImage{ } 三.属性 接下来定义几个需要使用的属性. 1.首先定义一个需要抓取的图片地址:$img_url 2.再定义一个$file_name用来存储文件的名称,但是不携带拓展名,因为可能涉及到拓展名更换,所以这里拆开定义 3.紧接着就是拓展名$extension 4.然后我们

  • python实现多线程抓取知乎用户

    需要用到的包: beautifulsoup4 html5lib image requests redis PyMySQL pip安装所有依赖包: pip install \ Image \ requests \ beautifulsoup4 \ html5lib \ redis \ PyMySQL 运行环境需要支持中文 测试运行环境python3.5,不保证其他运行环境能完美运行 需要安装mysql和redis 配置 config.ini 文件,设置好mysql和redis,并且填写你的知乎帐号

  • Python爬虫框架Scrapy实战之批量抓取招聘信息

    网络爬虫抓取特定网站网页的html数据,但是一个网站有上千上万条数据,我们不可能知道网站网页的url地址,所以,要有个技巧去抓取网站的所有html页面.Scrapy是纯Python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便- Scrapy 使用wisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求.整体架构如下图所示: 绿线是数据流向,首先从初始URL 开始,Scheduler 会将其

  • Python实现抓取HTML网页并以PDF文件形式保存的方法

    本文实例讲述了Python实现抓取HTML网页并以PDF文件形式保存的方法.分享给大家供大家参考,具体如下: 一.前言 今天介绍将HTML网页抓取下来,然后以PDF保存,废话不多说直接进入教程. 今天的例子以廖雪峰老师的Python教程网站为例:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 二.准备工作 1. PyPDF2的安装使用(用来合并PDF): PyPDF2版本:1.2

  • PHP封装的远程抓取网站图片并保存功能类

    本文实例讲述了PHP封装的远程抓取网站图片并保存功能类.分享给大家供大家参考,具体如下: <?php /** * 一个用于抓取图片的类 * * @package default * @author WuJunwei */ class download_image { public $save_path; //抓取图片的保存地址 //抓取图片的大小限制(单位:字节) 只抓比size比这个限制大的图片 public $img_size=0; //定义一个静态数组,用于记录曾经抓取过的的超链接地址,避

  • Python爬虫抓取指定网页图片代码实例

    想要爬取指定网页中的图片主要需要以下三个步骤: (1)指定网站链接,抓取该网站的源代码(如果使用google浏览器就是按下鼠标右键 -> Inspect-> Elements 中的 html 内容) (2)根据你要抓取的内容设置正则表达式以匹配要抓取的内容 (3)设置循环列表,重复抓取和保存内容 以下介绍了两种方法实现抓取指定网页中图片 (1)方法一:使用正则表达式过滤抓到的 html 内容字符串 # 第一个简单的爬取图片的程序 import urllib.request # python自带

  • php file_get_contents抓取Gzip网页乱码的三种解决方法

    把抓取到的内容转下编码即可($content=iconv("GBK", "UTF-8//IGNORE", $content);),我们这里讨论的是如何抓取开了Gzip的页面.怎么判断呢?获取的头部当中有Content-Encoding: gzip说明内容是GZIP压缩的.用FireBug看一下就知道页面开了gzip没有.下面是用firebug查看我的博客的头信息,Gzip是开了的. 复制代码 代码如下: 请求头信息原始头信息Accept text/html,appl

随机推荐