最新公告
  • 欢迎您光临马哥源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 「Java」纯蔬果,5000字的博文创你收集整站短篇小说(附源码)

    我们好我叫悲悯,这是我的第二卷控制技术昌明(首篇讲诉的是他们的历经),已连续四天预览了,会花两半小时写出两个两栖作战事例,我也是Longpr,非常感谢我们对我的全力支持。

    那时咱要做的是借助Pythonbanlist整座中文网站上的大部份短篇小说文本,只不过在倾城里头,收集甚么文本显然毫无意义,最重要的是我们能自学到我的预测路子,授人以鱼比不上少击众。

    已经开始

    既然是要收集整站数据,那么我们进入目标中文网站,点击全部作品。

    自动草稿

    预测(x0)

    第一步右键一下查看中文网站源标识符,看里头是否有咱需要的书本源头文件地址(当然是看源头文件地址,因为一本书的文本这么大,然后一页有这么多本书,肯定不可能文本全部在源标识符中)。

    自动草稿

    可以看到我在元素中可以找到书的名字和介绍,然后关键的是两个跳转的网址,这个网址很关键,因为咱点击这个链接后他会跳到单本短篇小说中。

    自动草稿

    而单本短篇小说里头势必会有章节分类,而我们要做的肯定是需要把每本短篇小说的章节名字也收集下来。

    最终的目的就是,每本短篇小说为两个文件夹,以书的名字命名,然后文件夹内保存大部份章节,每两个章节为两个txt文档,没两个章节名与txt文件名对应。

    预测(x1)

    反转,切记不要以element作为源标识符去考虑问题!!element可能是浏览器执行了一些JavaScript后所展现的源码,与服务器传给浏览器的源标识符是有所不同的。

    所以咱还是需要在源标识符中找一找是否有跳转链接和书名。

    自动草稿

    好吧,源标识符中也是有的。不过你们不能大意,一定要查看源标识符中是否有,element代表不了源标识符。

    那么先收集一下第一页的书名和跳转链接

    抓取第一页的大部份书籍名字,书籍入口到了书籍入口后,抓取章节名字,章节链接(文字文本)保存importrequestsfromlxml import etreeimportosurl=https://www.qidian.com/allreq=requests.get(url).texthtml=etree.HTML(req)booknames=html.xpath(//div[@class="book-mid-info"]/h4/a/text())tzurls=html.xpath(//div[@class="book-mid-info"]/h4/a/@href)forbookname, tzurl in zip(booknames, tzurls):ifnot os.path.exists(bookname):if os.path.exists(bookname) == False:os.mkdir(bookname)创建文件夹

    这里对应着咱的路子,每收集到两个书名就给它单独创建两个文件夹。

    自动草稿

    完全没问题,到这里咱已经完成第一步了。

    预测(x2)

    那么接下来就是去模拟请求咱收集到的书本产品目录的跳转链接,然后同样的方法去收集到章节名与章节文本的跳转链接了。

    自动草稿

    同样的你们他们查看下源标识符,数据也是在里头的。

    自动草稿

    那就接着写标识符咯

    importrequests
    from lxmlimportetreeimportos
    url = https://www.qidian.com/allreq = requests.get(url).text
    html = etree.HTML(req)
    booknames = html.xpath(//div[@class="book-mid-info"]/h4/a/text())tzurls = html.xpath(//div[@class="book-mid-info"]/h4/a/@href)forbookname, tzurlinzip(booknames, tzurls):ifnot os.path.exists(bookname):ifos.path.exists(bookname) ==False:
            os.mkdir(bookname)   创建文件夹
        req2 = requests.get("http:"  tzurl).text
        html1 = etree.HTML(req2)
        zjurls = html1.xpath(//ul[@class="cf"]/li/a/@href)zjnames = html1.xpath(//ul[@class="cf"]/li/a/text())forzjurl, zjnameinzip(zjurls, zjnames):print(zjname \n zjurl)

    效果图:

    自动草稿

    预测(x3)

    知道这里为甚么没有去把章节名字命名的txt文档保存在文件夹内吗?

    因为咱还没有获取到章节的文本呀,是不是需要先把章节文本写到章节的txt里头,然后再保存在文件夹内?

    当然这句解释是为了照顾新手。

    那么接下来收集章节文本,方法甚么的不讲了, 一模一样的,章节文本同样在源标识符中如上上图所示。

    自动草稿

    每两个标签只保存一行文本,那么就需要用到把收集到的大部份文本都组合起来,并用换行符隔开,尽量保持文章格式。

    标识符走起:

    importrequests
    from lxmlimportetreeimportos
    url = https://www.qidian.com/allreq = requests.get(url).text
    html = etree.HTML(req)
    booknames = html.xpath(//div[@class="book-mid-info"]/h4/a/text())tzurls = html.xpath(//div[@class="book-mid-info"]/h4/a/@href)forbookname, tzurlinzip(booknames, tzurls):ifnot os.path.exists(bookname):ifos.path.exists(bookname) ==False:
            os.mkdir(bookname)   创建文件夹
        req2 = requests.get("http:"  tzurl).text
        html1 = etree.HTML(req2)
        zjurls = html1.xpath(//ul[@class="cf"]/li/a/@href)zjnames = html1.xpath(//ul[@class="cf"]/li/a/text())forzjurl, zjnameinzip(zjurls, zjnames):print(zjname \n zjurl)
            req3 = requests.get(http:   zjurl).text
            html2 = etree.HTML(req3)
            nrs = html2.xpath(//div[@class="read-content j_readContent"]/p/text())  分散式文本nr = \n.join(nrs)
            file_name = bookname  "\\"  zjname  ".txt"print("正在抓取文章:"  file_name)
            withopen(file_name, a, encoding="utf-8")asf:
                f.write(nr)

    效果图:

    自动草稿

    这里要说明一下,咱还只是抓取了第一页的数据。那么如何抓取整站的数据呢?

    预测(x4)

    一般稍微有经验的都知道一点,就是当我们翻页的时候,中文网站的url会发生变化,页码一般就是在url上面。

    自动草稿

    自动草稿

    构建个for循环把页码数变为两个变量即可,无需多言,直接上最终的完备标识符,标识符仅供参考,你们最终可以他们去修改效果。

    完备的标识符

    importsysimportrequests
    from lxmlimportetreeimportosforiinrange(sys.maxsize):
        url = fhttps://www.qidian.com/all/page{i}/req = requests.get(url).text
        html = etree.HTML(req)
        booknames = html.xpath(//div[@class="book-mid-info"]/h4/a/text())tzurls = html.xpath(//div[@class="book-mid-info"]/h4/a/@href)forbookname, tzurlinzip(booknames, tzurls):ifnot os.path.exists(bookname):ifos.path.exists(bookname) ==False:
                os.mkdir(bookname)   创建文件夹
            req2 = requests.get("http:"  tzurl).text
            html1 = etree.HTML(req2)
            zjurls = html1.xpath(//ul[@class="cf"]/li/a/@href)zjnames = html1.xpath(//ul[@class="cf"]/li/a/text())forzjurl, zjnameinzip(zjurls, zjnames):print(zjname \n zjurl)
                req3 = requests.get(http:   zjurl).text
                html2 = etree.HTML(req3)
                nrs = html2.xpath(//div[@class="read-content j_readContent"]/p/text())  分散式文本nr = \n.join(nrs)
                file_name = bookname  "\\"  zjname  ".txt"print("正在抓取文章:"  file_name)
                withopen(file_name, a, encoding="utf-8")asf:
                    f.write(nr)

    我有话说

    自动草稿

    ——女朋友就是私有变量,只有我这个类才能调用(纪念分手的第二周

    emmm本来以前是录制过视频教程的,但是由于从上家公司离职后丢失了。在这里跟大伙说声抱歉。

    但是文章的话是现写的,每篇文章我都会说得很细致,所以花费的时间比较久,一般都是两个半小时以上,每篇文章达到五千字左右。

    原创不易,再次非常感谢我们的全力支持。

    ① 2000多本Python电子书(主流和经典的书籍应该都有了)

    ② Python标准库资料(最全中文版)

    ③ 项目源码(四五十个有趣且经典的练手项目及源码)

    ④ Python基础入门、爬虫、web开发、大数据预测方面的视频(适合小白自学)

    ⑤ Python自学路线图(告别不入流的自学)

    私信小编01即可获取大量python自学资源

    自动草稿
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
    8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
    马哥源码 » 「Java」纯蔬果,5000字的博文创你收集整站短篇小说(附源码)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    会员有问题怎么沟通交流!可以使用会员中心的工单或是进QQ群
    用户工单如何提问?登录账户,进入个人中心 下面可以看到我的工单,就可以向站长提问题了
    • 4710会员总数(位)
    • 5028资源总数(个)
    • 75本周发布(个)
    • 1 今日发布(个)
    • 1344稳定运行(天)