555 asp.net mvc 抓取京东商城分类
 
URL:http://www.jd.com/allSort.aspx
 
效果:
 
//后台代码
public ActionResult GetCategoryFromJd()
        {
            var url = "http://www.jd.com/allSort.aspx";
            var htmlCode = HttpGet(url, "", new System.Net.CookieContainer());
            var firstCats = new List<string>();
            var codeCut = "";
            var endStr = "</h2>";
            var start = -1;
            var end = -1;
            var current = htmlCode.IndexOf("全部商品分类<b></b>");//去除第一个无用的h2标签内容
            start = htmlCode.IndexOf("<h2>", current);
            end = htmlCode.IndexOf("<h2>", start+1);
            while (start >= 0)
            {
                if (end > start)
                {
                    codeCut = htmlCode.Substring(start, end - start);
                    //一级分类
                    var firstCatName = GetChinese(codeCut, "<h2>(.*)</h2>", "[^\u4e00-\u9fa5、]");
 
                    //二级、三级分类
                    var matches = Regex.Matches(codeCut.Replace("\r\n", ""), "<dl(.*?)</dl>");
                    foreach (Match mc in matches)
                    {
                        //二级分类
                        var secondCatName = GetChinese(mc.Groups[1].Value, "<dt>(.*?)</dt>","[^\u4e00-\u9fa5、]");
 
                        //三级分类
                        var mts = Regex.Matches(mc.Groups[1].Value, "<em>(.*?)</em>");
                        foreach (Match m in mts)
                        {
                            var thirdCatName = GetChinese(m.Groups[1].Value, "<a.*>(.*)</a>");
                        }
                    }
                }
                current = end;
                start = htmlCode.IndexOf("<h2>", current);
                end = htmlCode.IndexOf("<h2>", start+1);
                if (end < 0)
                {
                    end = htmlCode.IndexOf("id=\"service-2013\"", start);
                }
                current = end+endStr.Length;
            }
            return View();
        }
 
//辅助方法
 
public static string GetChinese(string content,string pattern,string reg="[^\u4e00-\u9fa5、0-9-./A-Za-z&·]")
        {
            var match = Regex.Match(content, pattern);
            if (match.Success)
            {
                var result = Regex.Replace(match.Groups[1].Value, @reg, "");//取汉字或标点“、”、数字和“-”
                return result;
            }
            return null;
        }
 
public static string HttpGet(string Url, string postDataStr, CookieContainer cookie)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);
            request.Method = "GET";
            request.ContentType = "text/html;charset=gbk";
            request.CookieContainer = cookie;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gbk"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

return retString;
        }

asp.net mvc 抓取京东商城分类的更多相关文章

  1. 使用selenium+BeautifulSoup 抓取京东商城手机信息

    1.准备工作: chromedriver  传送门:国内:http://npm.taobao.org/mirrors/chromedriver/   vpn: selenium BeautifulSo ...

  2. asp.net MVC 抓取微信文章数据(正文)

    1.抓微信的正文主要是调用第三方的接口(https://market.aliyun.com/products/56928004/cmapi012134.html) using Newtonsoft.J ...

  3. asp.net mvc抓取微信文章里面所有的图片

    /// <summary> /// 下载指定URL下的所有图片 /// </summary> public class WebPageImage { /// <summa ...

  4. php+phpquery简易爬虫抓取京东商品分类

    这是一个简单的php加phpquery实现抓取京东商品分类页内容的简易爬虫.phpquery可以非常简单地帮助你抽取想要的html内容,phpquery和jquery非常类似,可以说是几乎一样:如果你 ...

  5. Asp.Net 之 抓取网页内容

    一.获取网页内容——html ASP.NET 中抓取网页内容是非常方便的,而其中更是解决了 ASP 中困扰我们的编码问题. 需要三个类:WebRequest.WebResponse.StreamRea ...

  6. 【爬虫】利用Scrapy抓取京东商品、豆瓣电影、技术问题

    1.scrapy基本了解 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘, 信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取(更确切来说,网络抓 ...

  7. Scrapy实战篇(八)之Scrapy对接selenium爬取京东商城商品数据

    本篇目标:我们以爬取京东商城商品数据为例,展示Scrapy框架对接selenium爬取京东商城商品数据. 背景: 京东商城页面为js动态加载页面,直接使用request请求,无法得到我们想要的商品数据 ...

  8. Python脚本抓取京东手机的配置信息

    以下代码是使用python抓取京东小米8手机的配置信息 首先找到小米8商品的链接:https://item.jd.com/7437788.html 然后找到其配置信息的标签,我们找到其配置信息的标签为 ...

  9. ASP.NET网页抓取数据

    我的数据通过一个TextBox输入,这些代码是写在一个button的点击事件里的. 网页数据抓取大概分为两步,第一步是获取网页源代码: 具体注释如下: var currentUrl = TextBox ...

随机推荐

  1. Swift 中的Range和NSRange不同

    Swift中的Ranges和Objective-C中的NSRange有很大的不同,我发现在处理Swift中Ranges相关的问题的时候,总是要花费比我想象的更多的时间.不过,现在回过头来看看,发现Sw ...

  2. 倍增实现LCA

    Today,we will talk about how to find The Least Common Ancestor. Now ,let us get into the business(正题 ...

  3. iPhone模拟定位(非越狱修改手机定位)

    剩下的事情就是build一下到手机,那么,就可以看到神奇的效果!   本次带来一个简单又好玩的实用功能,比如定位装逼(共享定位非分享可选那种),又或者定位打卡之类,由于改变的是设备级别的定位,本设备所 ...

  4. 如何用纯 CSS 创作一个同心圆弧旋转 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/OZmXQX 可交互视频教程 此视 ...

  5. 前端面试绝对会考的JS问题!【已经开源】

    写在前面 [前端指南]前端面试库已经开源,正在完善之中 [x] css问题 [x] html问题 [x] javascript问题 github地址 https://github.com/nanhup ...

  6. fshc模块fsch2mcu_if理解

    fshc2mcu_if中包括ahb2reg/ahb2fifo两个文件,都是协议转换文件.ahb2reg下游文件是reg files,ahb2fifo下游文件是fifo控制器.所有的配置和flag都是要 ...

  7. angular中的http拦截器Interceptors

    在angularJs中增加了一个对全局的http请求统一做出处理的api--interceptors Interceptors 有两个处理时机,分别是: 其它程序代码执行 HTTP 请求之后,在实际从 ...

  8. 大数据学习——有两个海量日志文件存储在hdfs

    有两个海量日志文件存储在hdfs上, 其中登陆日志格式:user,ip,time,oper(枚举值:1为上线,2为下线):访问之日格式为:ip,time,url,假设登陆日志中上下线信息完整,切同一上 ...

  9. 大数据学习——shell编程

    03/ shell编程综合练习 自动化软件部署脚本 3.1 需求 1.需求描述 公司内有一个N个节点的集群,需要统一安装一些软件(jdk) 需要开发一个脚本,实现对集群中的N台节点批量自动下载.安装j ...

  10. 81. Spring Boot集成JSP疑问【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 针对文章: ()Spring Boot 添加JSP支持[从零开始学Spring Boot] 有网友提了这么一些疑问: 1.Spring Boot使用jsp时,仍旧可以打成 ...