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. ftp上传文件、删除文件、下载文件的操作

    FavFTPUtil.Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ...

  2. HDU-3746-Cyclic Nacklace(KMP,循环节)

    Cyclic Nacklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...

  3. Beego:原生方式使用MySQL

    示例: package controllers import ( "database/sql" "fmt" "github.com/astaxie/b ...

  4. Python简介--备份

    脚本开头指定解释器路径  /usr/bin/env  python  和  /usr/bin/python比较.(Linux在PATH中找到第一个路径的Python版本来执行) PATH中第一个路径是 ...

  5. django的基本操作流程

    pip   install django cd Desktop/课上代码02/ #进入到创建项目的目录   django-admin startproject 项目的名称  #创建项目   __ini ...

  6. Android API Guides 安卓API指导----第一部分:Introduction(介绍)

    第一部分: Introduction(介绍) 目录包含:APP  Fundamentals     (应用程序基础) Device   Compatibility(设备兼容性) System Perm ...

  7. 谷歌浏览器修改CSS和js后同步保存到文件中 (译)

    本文标题:谷歌浏览器修改CSS和js后同步保存到文件中. 文本作者:魔芋铃. 英文原文:http://www.stephensaw.me/google-chrome-devtools-source-m ...

  8. 【CSS】常见问题集锦

    position=absolute 时,定位的父元素变成了body而不是父div?原因:如果父div的position为非static,则相对父div.参考:http://www.jianshu.co ...

  9. LibreOJ2302 - 「NOI2017」整数

    Portal Description 有一个整数\(x=0\),对其进行\(n(n\leq10^6)\)次操作: 给出\(a(|a|\leq10^9),b(b\leq30n)\),将\(x\)加上\( ...

  10. 【二分图匹配】E. 过山车

    https://www.bnuoj.com/v3/contest_show.php?cid=9154#problem/E [题意] 裸的最大匹配 [教训] 一开始边数开了k,建的是无向图,结果T了,改 ...