zoukankan      html  css  js  c++  java
  • 正则表达式爬取小说各章节链接

    用之前所学的知识简单爬取了一个小说网站

    这一次是这个网站

    经过简单的爬取,前面步骤省略

    可以得到这么个玩意

    以及我想要的链接

    下一步,开始清除标签:

    此时需要借用正则表达式来进行

    首先导入re库

    import re

    再然后运用find_all()函数来寻找div标签下面的di_=list的内容

    提取内容

    那我们就可以以这里为开头,进行匹配

    那在哪儿结束呢,这就涉及到了网页开发的知识了,

    会有成对的字节,有a,那一定有/a,那也就是说有div,那一定有/div

      .*?呢,它表明了只要是以开头,以</div>结尾的字段,我都要。

    注意每个网站的有可能不一样,不一定是div,其他的也行,html就是我们要匹配的对象

    re.S(注意是大S)是说所有的符号都要匹配,默认换行等不匹配

    [0]因为匹配到最后的是列表,要把它提取出来,如果匹配出来的有多个,

    那也可以用这个去筛选,他在列表第一个就用[0],第二个就用[1],

    一般来说不会出现这种情况,如果有,说明你用来匹配的字段不是唯一的

    筛选到这里还是不行,它里面还有一些奇怪的字符

    所以还要进行筛选

    你不觉得我们要的内容他很有规律吗,我们只要以这个为模板,进行匹配就好了

    (.*?) 这是什么,返向捕获,返回捕获的内容,把我们想要的url和章节名称捕获就好了

    接下来我们循环访问我们捕获的url

    再把url的内容下载下来就好了,在这之前我们还要再爬一个东西,

    我们的小说名字,还是用我们的正则表达式

    匹配字段一般来说是在head头里面

    同时还要新建一个文件,以保存小说内容

    接下来开始循环获取章节名和链接

    再加上前缀域名就ok了

    实际效果如下

  • 相关阅读:
    PHP中文字符串编码转换
    html表单样式, table隔行高亮, 长字符串自动换行
    PHP带重试功能的curl
    redis+crontab+php异步处理任务
    emoji表情初探
    iptables进行DNAT(目标地址转换)
    Linux作为路由器(一)
    nginx正向代理http(一)
    Linux Shell sort排序常用命令(转载)
    Zabbix添加自定义监控项(一)
  • 原文地址:https://www.cnblogs.com/oldfish123/p/11963232.html
Copyright © 2011-2022 走看看