• (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:数据完整,一个也没有漏掉,这样可以将这些内容写入到数据库,就相当于在本地有了论坛的数据部分。

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

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

  • 相关阅读:
    Unity Notes调制粒子系统的颗粒的最大数目
    Swift编程语言学习2.1——基础运营商(在)
    JavaScript语言基础知识6
    算法题:合并两个有序列表
    DDFT
    Java For循环效率试验
    Delphi ORD
    Delphi TcxTreeList 节点添加图片
    SQL Server 除法 不起作用的问题
    Delphi 继承基类的窗体,并显示基类的控件操作。
  • 原文地址:https://www.cnblogs.com/codefish/p/2775547.html
Copyright © 2020-2023  润新知