当前位置:   article > 正文

抓取csdn的数据_cnds上的资料我在方法获取吗

cnds上的资料我在方法获取吗

如有不明白的地方欢迎加QQ群14670545 探讨

代码质量不行,后面采集起来卡,原因是正则我太菜了,没有开多线程采集。下面我举例:

目标页面是http://bbs.csdn.net/recommend_tech_topics,有图有真相:


看看采集后的效果:


下面是采集到的每个帖子楼主的内容以及一些简单的显示。图片之所以没有显示出来,因为csdn是用的一个专门的图片服务器,设置了防盗链,这个自己捣鼓下应该也可以绕过去。



下面我来分析下:

抓取的原理:先获取对应url页面的html内容,然后根据找出你要抓取的目标数据的的html结构,看看这个结构是否有某种规律,然后用正则去匹配这个规则,匹配到了以后就可以扣出来。

先看看http://bbs.csdn.net/recommend_tech_topics这个页面的源代码:


再通过谷歌浏览器我们再次确认了,目标数据是位于<div class="list_1">...</div>中间的


可是怎么匹配呢,我百度了下,就是找某两个字符中间的内容。考虑到结尾</div>很多,我这里就偷懒,把<div class="list_1">...</div>这一对div和近邻着的的后面的一个div【从源代码上我们可以看到是:<div class="page_nav">】<div class="page_nav">放到一起来,所以我的正则出来了:

Regex regex = new Regex("<div class=\"list_1\">([\\s\\S]*)</div>([\\s\\S]*)<div class=\"page_nav\">", RegexOptions.Compiled);
为了美化一下,我加了点css,具体代码如下;

页面:

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="testcollection.aspx.cs" Inherits="testcollection" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5. <title>测试获取网页信息</title>
  6. <script src="js/jquery-1.6.min.js" type="text/javascript"></script>
  7. <style type="text/css">
  8. a:link, a:visited {color: #335AA4;text-decoration: none;}
  9. a:hover, a:active {color: #CA0000;text-decoration: underline;}
  10. a.a_insertdb{ color:#f00; font-weight:bold;}
  11. a.a_insertdb:hover{
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/396568
推荐阅读
相关标签
  

闽ICP备14008679号