c# 里用正则表达式从网页获取信息?、
网页为http://www.hnrcsc.com/firstPage/showDwzpDetail.asp?dwid=12365语言为c#用正则表达式取页面的如下文本公司...
网页为 http://www.hnrcsc.com/firstPage/showDwzpDetail.asp?dwid=12365
语言为c#
用正则表达式取页面的如下文本
公司名称
电话
传真
联系人
邮编
网址
E-MAIL
地址
单位简介
存入一个数据库
希望能得到与之相关的代码,O(∩_∩)O哈哈~ 展开
语言为c#
用正则表达式取页面的如下文本
公司名称
电话
传真
联系人
邮编
网址
地址
单位简介
存入一个数据库
希望能得到与之相关的代码,O(∩_∩)O哈哈~ 展开
展开全部
第一步:先取出你所要的信息所在的尽可能小的一段HTML.(在本需求中,这一步显得不是很重要,如果你面对的是个列表,你会发现这一步的意义)
<td height="40" align="left" style="font-size:14px; font-weight:bolder; padding-left:25px; color:#3b4b65;">(.*?)<img src="/firstpage/ima/b.gif" width="718" height="33" border="0"/>
接下来,用上面的操作得到的HTML分别进行以下提取即可.
公司名称:
<td height="40" align="left" style="font-size:14px; font-weight:bolder; padding-left:25px; color:#3b4b65;">[\u4e00-\u9fa5]+</td>
电话:
<td width="215" align="left" class="shangxian">[\d]{4}-[\d]{0,8}</td>
传真:
<td width="200" align="left" class="shangxian" >[\d]{4}-[\d]{0,8}</td>
联系人:
<td align="left" class="zhongxia">[\u4e00-\u9fa5]+</td>
邮编:
<td align="left" class="zhongxia">[\d]+</td>
网址:
http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?
E-Mail:
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
地址:
<td colspan="3" align="left" class="xiaxin">(.*?)</td>
单位简介:
<p>(.*?)</p>
这就是我现在做的软件的整体思路.其实,我把这些都叫做信息分装向导.
第一步的叫做信息对像提取.它可能由多条有序的表达式组成.
后面的分别进行,我叫做信息元分装提取.它们也可能各自由多条有序的表达式组成,视面对的复杂度了.
现在的大多数信息采集软件都是面向站点的.也就是说数据对像的结构不定,不同网站设计不同数据结构,然后再采,这样采到的数据,很难进行统一的管理和二次利用.
我的思路是面向数据的.我把最常用的网上数据分成十六种.每种建立一个标准结构.
然后,为每一种建立一个通用的数据分装向导的调度机制.这样,接下来的工作就是,给出需要采集的网页地址和编写分装向导规则了.
只要数据基本上属于我十六种中的一种,就可以进行采集.不考虑网站.(需要登录的另加一些专门的预处理机制)
<td height="40" align="left" style="font-size:14px; font-weight:bolder; padding-left:25px; color:#3b4b65;">(.*?)<img src="/firstpage/ima/b.gif" width="718" height="33" border="0"/>
接下来,用上面的操作得到的HTML分别进行以下提取即可.
公司名称:
<td height="40" align="left" style="font-size:14px; font-weight:bolder; padding-left:25px; color:#3b4b65;">[\u4e00-\u9fa5]+</td>
电话:
<td width="215" align="left" class="shangxian">[\d]{4}-[\d]{0,8}</td>
传真:
<td width="200" align="left" class="shangxian" >[\d]{4}-[\d]{0,8}</td>
联系人:
<td align="left" class="zhongxia">[\u4e00-\u9fa5]+</td>
邮编:
<td align="left" class="zhongxia">[\d]+</td>
网址:
http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?
E-Mail:
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
地址:
<td colspan="3" align="left" class="xiaxin">(.*?)</td>
单位简介:
<p>(.*?)</p>
这就是我现在做的软件的整体思路.其实,我把这些都叫做信息分装向导.
第一步的叫做信息对像提取.它可能由多条有序的表达式组成.
后面的分别进行,我叫做信息元分装提取.它们也可能各自由多条有序的表达式组成,视面对的复杂度了.
现在的大多数信息采集软件都是面向站点的.也就是说数据对像的结构不定,不同网站设计不同数据结构,然后再采,这样采到的数据,很难进行统一的管理和二次利用.
我的思路是面向数据的.我把最常用的网上数据分成十六种.每种建立一个标准结构.
然后,为每一种建立一个通用的数据分装向导的调度机制.这样,接下来的工作就是,给出需要采集的网页地址和编写分装向导规则了.
只要数据基本上属于我十六种中的一种,就可以进行采集.不考虑网站.(需要登录的另加一些专门的预处理机制)
展开全部
500 分 也没人写给你代码,原因如下
这个属于信息采集,说牵涉到的方面比较多,就算给你正则提取内容,但还需考虑其他因素的。
给你稍微的讲解下吧。
1. 需要获取COOKIES才能登陆网站,换句话说你的采集需要 POST 登陆 才行
2. 正确的解释文件编码,有的网页中虽然是GB2312 或 GBK 等但 实际的编码不是这样的,当网页打开加载,或出现乱码,或其他情况的时候系统就会自动的换成正确的编码,看上去就像是GB2312 或 GBK 但实际上却不是的,细节就不说明了
3. 页面的跳转有很多方式,当你采集的时候就需要考虑,如:脚本传参,事件触发,AJAX,框架等
4. 页面路径问题,有的网站是以日期作为路径的如新闻网站,有的网站是以时间作为路径的如,附件下载的。
5. 到这里才能算是用正则提取的。
正则提取需要使用正则表达组!过滤页面中的JS, HTML标签,CSS等,然后在过滤空格行,空白字符,unciode字符等。提取的过程比较复杂,遇见防采集的网站需要手动分析,标签替换等,操作复杂。
躲过了N多的BOSS才给你回答的,这样简单的说到这里希望对LZ有帮助!
这个属于信息采集,说牵涉到的方面比较多,就算给你正则提取内容,但还需考虑其他因素的。
给你稍微的讲解下吧。
1. 需要获取COOKIES才能登陆网站,换句话说你的采集需要 POST 登陆 才行
2. 正确的解释文件编码,有的网页中虽然是GB2312 或 GBK 等但 实际的编码不是这样的,当网页打开加载,或出现乱码,或其他情况的时候系统就会自动的换成正确的编码,看上去就像是GB2312 或 GBK 但实际上却不是的,细节就不说明了
3. 页面的跳转有很多方式,当你采集的时候就需要考虑,如:脚本传参,事件触发,AJAX,框架等
4. 页面路径问题,有的网站是以日期作为路径的如新闻网站,有的网站是以时间作为路径的如,附件下载的。
5. 到这里才能算是用正则提取的。
正则提取需要使用正则表达组!过滤页面中的JS, HTML标签,CSS等,然后在过滤空格行,空白字符,unciode字符等。提取的过程比较复杂,遇见防采集的网站需要手动分析,标签替换等,操作复杂。
躲过了N多的BOSS才给你回答的,这样简单的说到这里希望对LZ有帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正则没法处理,你可以用htmlagalitypack把它转成XML,之后用xpath读,以前写过一个,不是很难
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果单这一个网站页面的采集倒是不难,因为格式固定,可以实现,但若用到别的网站就难了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询