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. 互联网中级Javascript面试题

    互联网中级Javascript面试题 1.实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制 ...

  2. wex5 教程 之 图文讲解 全局可观察变量与登陆状态全局控制

    一 先说说,这两个概念是什么意思 全局可观察变量?没听说过,只听过全局变量,那你out了,因为我要充分发挥绑定技术来控制页面部局,组件的隐藏与显示,文字内容,样式改变.看我博文大家知道,我想用绑定技术 ...

  3. adpatch options=hotpatch

    --no need to shutdown application and no need to enable maintenance mode adpatch options=hotpatch fi ...

  4. jQuery和Ajax的使用(杂记)

    在jsp文件的获取绝对路径标签,其他jsp文件调用就行了 <%@ page language="java" contentType="text/html; char ...

  5. 单调队列 hdu2823

    Sliding Window Time Limit: 12000MS   Memory Limit: 65536K Total Submissions: 48608   Accepted: 14047 ...

  6. Arduino学习笔记二:修改LED点灯程序

    看了开源社区的LED控制程序,开始上手代码编写,修改,下载以及调试,原文地址:http://www.arduino.cn/thread-1072-1-1.html,这个帖子写的比较通俗易懂. 自己移植 ...

  7. chrome的timeline中stalled问题解析

    原文地址 :http://foio.github.io/chrome-stalled/ 在公司国做一个运营活动,上线后PM总是抱怨访问速度过慢,影响运营效果.然而从前端的角度来说我已经做了如下优化: ...

  8. IE6兼容性问题及IE6常见bug详细汇总

    转载地址:http://www.jb51.net/css/76894.html 1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明&l ...

  9. centos 安装 mongdb

    1.安装MongoDB(安装到/usr/local) wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.2.4.t ...

  10. 打造高大上的Canvas粒子(一)

    HTML5 Canvas <canvas>标签定义图形,比如图表和其他图像,必须用脚本(javascript)绘制图形. 举例:绘制矩形 <script> var c = do ...