• Python爬虫爬取全书网小说,程序源码+程序详细分析


    Python爬虫爬取全书网小说教程

    第一步:打开谷歌浏览器,搜索全书网,然后再点击你想下载的小说,进入图一页面后点击F12选择Network,如果没有内容按F5刷新一下

    点击Network之后出现如下内容:

    第二步:进入如下页面分析Network中的内容(网址、编码方式一般为gbk)

    第三步:程序详细分析如下所示:

    # _*_ utf-8 _*_:
    # author:Administrator
    from urllib import request #导入请求库,有的版本是import requests
    import re #用于正则表达式
    first_url="http://www.quanshuwang.com/book/9/9055" #你所需要下载的小说的网址
    html=request.urlopen(first_url).read().decode('gbk') #上图箭头所示
    novel_info={} #创建一个空的字典,注意不是空的集合序列
    novel_info['title']=re.findall(r' <div class="chapName">.*<strong>(.*)</strong>',html) #()中的正则表达式,提取的内容放到novel_info里面    re.findall返回的是一个列表  而之后要把它转化为字符串处理  一定要注意那些是列表那些是字符串
    novel_info['author']=re.findall(r'  <div class="chapName"><span class="r">作者:(.*)</span><strong>盗墓笔记</strong><div class="clear"></div></div>',html)
    div_info=re.findall(r'<DIV class="clearfix dirconone">(.*?)</DIV> ',html,re.S|re.I)[0] #此处在re.finall()返回一个序列,序列里只有一个元素,在后面加个[0]将他访问出来,转化为字符串,re.S|re.I不能丢否则得到空集
    #获取每一个章节的地址
    tag_a=re.findall(r'<a.*?</a>',div_info)
    #循环每个章节依次获得内容
    for i in range(0,60):
        chapter_title = re.findall(r'title="(.*?)"', tag_a[i])[0]
        chapter_url=re.findall(r'href="(.*?)"',tag_a[i])[0]
        chapter_content=request.urlopen( chapter_url).read().decode('gbk') #与上面的思路一样
        chapter_text = re.findall(r'<div class="mainContenr"  (.*)style6', chapter_content, re.I | re.S)[0] 
        # print(chapter_content)
        chapter_clear = chapter_text.replace(r"&nbsp;", "")  #都是清洗数据的步骤,可以依据具体环境而定
        chapter_clear1 = chapter_clear.replace(r"<br />", "")
        chapter_clear2 = chapter_clear1.replace(r'id="content"><script type="text/javascript">style5();</script>', "")
        chapter_clear3 = chapter_clear2.replace(r'<script type="text/javascript">', "")
        file = open(r'E:老九门全书网.txt', 'a')
        file.write(chapter_title+'
    '+chapter_clear3+'
    
    ') #文件的读写操作
        print(chapter_title)
    file.close()

     其他:

    正则表达式附录:

     

     

     Python文件读写:

  • 相关阅读:
    Let’s Work on an LLVM Superoptimizer
    菜鸟程序员的成长之路(二)——时间都去哪儿了
    python进阶五_类(二)
    python进阶五_类(一)
    基于asp.net + easyui框架,一步步学习easyui-datagrid——完成,总结(四)
    给师弟师妹的一个计算机专业书单
    python进阶四_模块调用
    python进阶三_函数
    实训第一天--增删改查加hibernate+搭建环境常见问题
    9周的项目实训从今天就开始了,
  • 原文地址:https://www.cnblogs.com/ybl20000418/p/11438754.html
Copyright © 2020-2023  润新知