苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 7532|回复: 15

[HttpHelper] c#扒网页指定内容,但是div是字符串

[复制链接]
发表于 2016-3-21 13:02:51 | 显示全部楼层 |阅读模式
站长好,大家好~请教个问题,谢啦!用c#扒web source HTML,我想得到列表内容,并存入SQL sever;问题是:分析HTML时候,一般是<div>我需要的内容</div>,但是我这个是'<div>我需要的内容</div>',也就是说用单引号引用起来了,我该怎么扒到我需要的内容?附我的web source:view-source:http://www.sse.com.cn/assortment/fund/list/
;我的web page:http://www.sse.com.cn/assortment/fund/list/;
不知怎样描述问题是否ok,请站长大人帮我看看呀!多谢!


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2016-3-21 14:42:23 | 显示全部楼层
div里面肯定有class吧,用正则给匹配出来就可以了。
 楼主| 发表于 2016-3-21 19:47:31 | 显示全部楼层
先谢谢~
class有的,不过整个div都是被单引号引起来的,正则可以吗?
最后我抓到的最小的集合是这样的:
list:[
                                         '',
                                        [
                                                '<div class="align_center"><a target="_blank" href="/assortment/fund/list/tcurrencyfundinfo/basic/index.shtml?FUNDID=511800">511800</a></div>',       
                                                '<div class="align_center">易货币</div>',
                                                '<div class="align_center"><a target="_blank" href="/assortment/fund/fundcompany/list/detail.shtml?COMPANYNAME=易方达基金管理有限公司">易方达基金管理有限公司</a></div>'
                                        ],       
                                        '',
                                        [
                                                '<div class="align_center"><a target="_blank" href="/assortment/fund/list/tcurrencyfundinfo/basic/index.shtml?FUNDID=511810">511810</a></div>',       
                                                '<div class="align_center">理财金H</div>',
                                                '<div class="align_center"><a target="_blank" href="/assortment/fund/fundcompany/list/detail.shtml?COMPANYNAME=南方基金管理有限公司">南方基金管理有限公司</a></div>'
                                        ],       
                                        '',
……
发表于 2016-3-22 08:35:36 | 显示全部楼层
共叔萌 发表于 2016-3-21 19:47
先谢谢~
class有的,不过整个div都是被单引号引起来的,正则可以吗?
最后我抓到的最小的集合是这样的:
...

  这个你可以用正则尝试一下,你首先得把你获取到的html取出来,然后在这个html里面用正则去匹配就可以了。
 楼主| 发表于 2016-3-22 10:41:33 | 显示全部楼层
昨天写的解析字符串的代码: 今天还是没有找出错误,不过就是存不进database

while (true)
            {
                int i = 0;
                int start = content.IndexOf("FUNDID=");
                if (start == -1)
                    break;

                i = content.IndexOf("FUNDID=") + 6;//第一个"FUNDID="字符串出现的后面6位,是我们需要的code
                string id = content.Substring(i + 1,6);//截取code存入临时变量id
                content = content.Substring(content.IndexOf("</a></div>") + 10);//存入后丢弃已经截取过的content部分,即缩小content内容,从原content第一个字符串"</a></div>"后开始
                string name = content.Substring(content.IndexOf("</div>") - content.IndexOf("<div class=\"align_center\">") + 26);//截取两个字符串之间的部分,是我们需要的name,需要注意 +26是减数的长度
                content = content.Substring(content.IndexOf("COMPANYNAME="));//截取后缩小content范围
                string companyname = content.Substring(content.IndexOf("\">") - content.IndexOf("COMPANYNAME=") + 12);//截取company
                content = content.Substring(content.IndexOf("<div class="));//截取后缩小content范围

                datas.Add(new TmfListData() { FUND_ID = id, FUND_NAME = name, FUND_MANAGER = companyname });//将获取的一组截取数据,存入datas列表中
             }
 楼主| 发表于 2016-3-22 10:43:04 | 显示全部楼层
再写不好,我就要自挂东南枝了
发表于 2016-3-22 13:00:52 | 显示全部楼层
你调试一下看看 取的数据是什么格式的,为什么存不进数据库。
 楼主| 发表于 2016-3-22 15:39:14 | 显示全部楼层
可以取到正确列表了,接下来需要解决C#里的SQL语句,不知今天能不能完成了
where tablename["columnname"] != 10

请教,这句应该是错的吧,哪里格式不太对哇
发表于 2016-3-22 16:04:26 | 显示全部楼层
共叔萌 发表于 2016-3-22 15:39
可以取到正确列表了,接下来需要解决C#里的SQL语句,不知今天能不能完成了
where tablename["columnnam ...

SQL没有这种写法
发表于 2016-3-22 16:04:26 | 显示全部楼层
共叔萌 发表于 2016-3-22 15:39
可以取到正确列表了,接下来需要解决C#里的SQL语句,不知今天能不能完成了
where tablename["columnnam ...

SQL没有这种写法
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2025-1-1 15:39

© 2014-2021

快速回复 返回顶部 返回列表