using AnfleCrawler.Common;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace AnfleCrawler.DataAnalyzer
{
public class ManualAnalyzer : AnalyzerBase
{
private ConcurrentQueue<string[]> _dict = new ConcurrentQueue<string[]>(); public override void Init(PageCrawler crawler)
{
crawler.Lander.Idle += Lander_Idle;
base.Init(crawler); var url = new Uri("http://www.realestate.cei.gov.cn/traden/br2.aspx?rq=20140601&lx=w6&r1=20140830");
var dom = Crawler.Lander.GetDocument(new PageContentHandler() { Url = url });
foreach (var node in QueryNodes(dom.DocumentNode, "#qrq option"))
{
string val = node.GetAttributeValue("value", string.Empty);
Crawler.PushUrl(new Uri(string.Format("http://www.realestate.cei.gov.cn/traden/br2.aspx?rq={0}&lx=w6&r1=20140830", val)), );
}
}
void Lander_Idle(object sender, EventArgs e)
{
Crawler.OutWrite("Start step2...");
App.LogInfo("Start step2...");
using (var writer = new System.IO.StreamWriter(@"D:\outdict.txt", false, Encoding.UTF8))
{
foreach (var set in _dict)
{
writer.WriteLine(string.Join(",", set));
}
}
} protected override void AnalyzeInternal(PageLandEntity current)
{
Crawler.OutWrite("*Start step1...");
var lander = Crawler.Lander;
var pHandler = CreateContentHandler(current);
switch (current.Depth)
{
case :
{
var query = System.Web.HttpUtility.ParseQueryString(current.Url.Query);
var dt = DateTime.ParseExact(query["rq"], "yyyyMMdd", null);
var dom = lander.GetDocument(pHandler); var checkNode = QueryNode(dom.DocumentNode, "#str1");
if (string.IsNullOrWhiteSpace(checkNode.InnerText))
{
return;
}
checkNode.InnerHtml = checkNode.InnerHtml.Replace("<tr", "</tr><tr").Substring();
App.LogInfo("WTF CN:{0}", checkNode.InnerHtml);
var set = QueryNodes(checkNode, "tr");
foreach (var node in set)
{
var x = new List<string>();
x.Add(dt.ToString("yyyy-MM-dd"));
x.AddRange(QueryTexts(node, "td"));
_dict.Enqueue(x.ToArray());
}
_dict.Enqueue(new string[] { Environment.NewLine });
Crawler.OutWrite("#Stop step1 {0} {1}", dt.ToShortDateString(), set.Count());
}
break;
}
}
}
}

realestate.cei.gov.cn的更多相关文章

  1. https://jzh.12333sh.gov.cn/jzh/

    https://jzh.12333sh.gov.cn/jzh/ https://superuser.com/questions/171917/force-a-program-to-run-withou ...

  2. js加密(十四)mail.yw.gov.cn/ RSA

    1. url: http://mail.yw.gov.cn/ 2. target:登录js 3. 简单分析: 寻找加密js: 3.1 直接寻找加密的参数p是不好找的,所以我们试着去寻找一些更明显的参数 ...

  3. js加密(十三)zzxt.hee.gov.cn md5

    1. url: http://zzxt.hee.gov.cn/ 2. target: 登录加密 3. 简单分析: 这个应该很容易就能找到加密的js,直接拿出来就好. 4. js: /* * md5 * ...

  4. 小伙 zwfw-new.hunan.gov.cn.iname.damddos.com [222.240.80.52]

    由于这个应用出问题非常影响用户体验:于是立马让运维保留现场 dump 线程和内存同时重启应用,还好重启之后恢复正常.于是开始着手排查问题.

  5. FastReport问题整理(http://129.sqdj.gov.cn/?p=77)

    1.FastReport中如果访问报表中的对象?可以使用FindObject方法.TfrxMemoView(frxReport1.FindObject(’memo1′)).Text:=’FastRep ...

  6. RESEACH PAPER

      个,proquest的username和password赫然在目,别急,再看第4个结 果"HB Thompson Subscription Online Databases", ...

  7. IT技术网站汇总

    首先是比较著名的博客型的网站!一般来说在国外比较著名的博客基本上都是比较有影响力发起的或者建立的经常发布一些比较有思考力深入分析的文章! 博客媒体网站 1.www.ArsTechnica.com 2. ...

  8. [No0000EE]主要的宏观经济指标查询

    主要的宏观经济指标查询 国内:东财>经济数据 _ 数据中心:http://data.eastmoney.com/center/macro.html东财>经济数据 :http://data. ...

  9. 系统学习Linux建议

    国内的专业Linux网站(GB) ChinaUnix Linux中国 实验楼: 免费提供了Linux在线实验环境,不用在自己机子上装系统也可以学习Linux,超方便实用!. 国内的专业Linux网站( ...

随机推荐

  1. 使用规则引擎Drools计算圆周率PI

    实际上是使用规则引擎能够更新工作内存区重新匹配规则实现迭代功能. 使用了策略模式实现. <规则引擎与RETE算法介绍> PPT : http://files.cnblogs.com/lov ...

  2. HTML5——语音输入

    一.使用方式: <input type="text" x-webkit-speech /> 二.属性 1.lang属性:语言种类 <input type=&quo ...

  3. mongodb 安装、开启服务 和 php添加mongodb扩展

    1.下载mongodb:https://www.mongodb.org/downloads#production  (https://www.mongodb.org/dl/win32) 2.安装.配置 ...

  4. [已解决] MyBatis 中bind用法

    JAVA: TC_ENTR_FLOW selectFlowForUpdate(String ENTR_ID); XML: <select id="selectFlowForUpdate ...

  5. Date类型,Boolean类型,Number类型

    1.Date类型:  1)创建Date对象:    var date=new Date();  //Date对象会把当前日期和时间保存为其初始值 2)Date对象的方法:    --这些得到的都是数字 ...

  6. LA 4287 等价性证明

    题目链接:http://vjudge.net/contest/141990#overview 题意是告诉你有n个命题,m条递推关系,表示某个命题可以推出另外一个命题. 现在问你至少在增加多少个递推关系 ...

  7. Intellij IDEA 快捷键介绍

    ctrl-w   使所选表达式逐步增大直到选取整个文件  ctrl+shft+w   逐步减少选中 ctrl-n 可以通过键入类名查找一个类 ctrl-shift-n 可以查找文件 ctrl-e 得到 ...

  8. StudyFoxCMS-6

    1.phpstrom中安装emmet File=>Settings=>Plugins=>右侧搜索框搜索“emmet”=>点击下方中间按钮“Browse repositories ...

  9. sql 、linq、lambda 查询语句的区别

    LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量中被查询的值 [group by 条件] Lambda ...

  10. 编写一个JSP程序实现用户登录

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...