zoukankan      html  css  js  c++  java
  • (2)个人使用小爬虫关于一次被论坛封号而搜索的思考

    上次说到关于已经成功得到数据了。

    请看第一期链接:http://www.cnblogs.com/codefish/archive/2012/11/17/2774911.html

    那现在就是如何利用正则表达到获取相应的标签部分了,请看标签的格式

    <a href="htm_data/7/1211/828353.html" target="_blank" id="">[双十精选11.17] 这是神马电影?你们是不是过分低估了观众的智商啊?[20P]</a>

    以<a>开始,</a>结束 

    那简单的正则表达就应该是

    <a href="htm_data.+>.+</a>

    但是显然,这样的会将所有部分都包含进去了,并且这样的使用的是贪婪模式,没有进行特定字符的锁定的。

    观察得到,所有的字符都是

    <h3><a href=\"(htm_data/[0-9]{1,3}/[0-4]{1,4}/[0-9]{1,10}.html)\" target=\"_blank\" id=\"\">(.{1,50})</a></h3>

    为什么要这样写:

    第一,这样写将特定的部分总结出来,

    htm_data/[这里要锁定数字] 

    id=\"\">(.{这里要锁定字符部分})

    第二,需要根据出现的字符数时时的去改变范围

    比如这里的部分

    <h3><a href=\"(htm_data/[0-9]{1,3}/[0-4]{1,4}/[0-9]{1,10}.html)\" target=\"_blank\" id=\"\">(.{1,50})</a></h3>

    因为出现的最大字符数并不确定,而且不能包含到下一个出现的匹配字符,这样不会影响结果。

    OK:数据完整,一个也没有漏掉,这样可以将这些内容写入到数据库,就相当于在本地有了论坛的数据部分。

    抱歉,本来说好晚上更新的,没想到和朋友出去吃点饭弄的这么晚

    下期更新,如果用本地用户名,密码的方式访问网站。敬请期待。。。

  • 相关阅读:
    .net core webapi +ddd(领域驱动)+nlog配置+swagger配置 学习笔记(2)
    .net core webapi +ddd(领域驱动)+nlog配置+swagger配置 学习笔记(1)
    css规范
    eclipse for python
    CentOs时间不同步问题
    SecureCRT怎么将本级文件上传到CentOS
    tcp客户端程序开发
    C++STL小结
    食用指北
    Hello, world!
  • 原文地址:https://www.cnblogs.com/codefish/p/2775547.html
Copyright © 2011-2022 走看看