吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4065|回复: 28
收起左侧

[讨论] python获取笔趣阁小说清单约12万本写在表格中,喜欢的拿去,注不是小说是清单

  [复制链接]
fanvalen 发表于 2020-5-27 23:30
本帖最后由 fanvalen 于 2020-5-28 12:52 编辑

为啥我要弄个清单呢,
因为笔趣阁网站本身有很多小说却不推广到主页上来,
也不给列表显示全部,所以就有了这个。

比较傻是通过遍历所有id来获取书名的
先贴个我的代码
[Python] 纯文本查看 复制代码
#coding=utf-8
import requests
#import re
#import openpyxl
import threading
import os


#下载书页储存
def downweb(pg):

    hd={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}



    ml="https://www.52bqg.com/book_"
    #pg=1#1-127871


    bkid=str(pg)

    if not os.path.exists("d:\\bqg\\"+bkid+".html"):

        zj=requests.get(url=ml+bkid,headers=hd,timeout=30)

        if zj.status_code==200:
            zj.encoding="gbk"

            with open("d:\\bqg\\"+bkid+".html","w",encoding="utf-8")as f:
                f.write(zj.text)
                f.close()
        else:
            print("lost"+bkid)
    else:
        #print(bkid+"——is in")
        if os.path.getsize("d:\\bqg\\"+bkid+".html")<3000:
            os.remove("d:\\bqg\\"+bkid+".html")

        else:
            print(bkid)



lsit1=open("d:\\bqg.txt").read().splitlines()
for i in range(len(lsit1)):

    pg=lsit1[i]
    downweb(pg)


# 书名 作者 更新时间字数 简介


#
# pg=1
# while pg<127872:
#     for i in range(10):
#         th=threading.Thread(target=downweb,args=(pg,))
#         th.start()
#         pg=pg+1
#     for j in range(10):
#         th.join()



本代码分两段运行
[Python] 纯文本查看 复制代码
#coding=utf-8

import re
import openpyxl
import os
import threading






ld=openpyxl.load_workbook
book=ld("d:\\bqg.xlsx")
sheet1=book["Sheet1"]


def info(pg):
    n=str(pg)
    if os.path.exists("d:\\bqg\\"+n+".html"):
        ht=open("d:\\bqg\\"+n+".html",encoding="utf-8").read()
        #print(ht.read())
        #print(type(ht))
        #print(ht)


        pat=r"<h1>(.*)</h1>\s*<p>作者:<a href=\S* target=\S*>(.*)</a></p>\s*<p>\s*动作:<a href=\S* onclick=\S* rel=\S*</a>,\s*<a href=\S* 

onclick=\S*</a>,\s*<a href=\S* rel=\S*</a>\s*</p>\s*<p>更新时间:(.*).*\s*<p>最新:<a href=\S* title=.*</a></p>\s*<div class=\S*></div>\s*<div id=

\S*>([\S\s]*?)</div>"


        r=re.findall(pattern=pat,string=ht)
        print(r)
        if len(r)>0:
            #print(r)

            d=r[0]
            #print(d)

            sheet1.cell(pg,1).value=n
            for i in range(1,5):

                #print(d[i-1])
                sheet1.cell(pg,i+1).value=d[i-1]
                print(n)

        else:
            print("没有内容"+n)

    else:
        #print("不存在"+n)
        pass


# pg=1
# while pg<127872:
#     for i in range(10):
#         th=threading.Thread(target=info,args=(pg,))
#         th.start()
#         pg=pg+1
#     for j in range(10):
#         th.join()
#



lsit1=open("d:\\bqg.txt").read().splitlines()
for i in range(len(lsit1)):
    try:


        pg=int(lsit1[i])
        #print(pg)
info(pg)
    except BaseException:
        pass


book.save("d:\\bqg.xlsx")


哈哈哈代码不是很规范,本代码修了两次,

原因是处理的数据有漏掉,有找出漏了的添加进去,
好了废话不多说下面上个图看看
bqg.png
bqgls.jpg

文件下载用了一晚上,处理数据用了两分钟。

就像台下十年功,台上十分钟一样。

为啥要分两步呢,下载太久了,本来是一个就可以完成,由于下载问题我分成两段代码来完成。

python读取45M表格特慢了。


这里附上小说清单表格的下载链
蓝奏
经过某坛友提示加了类别,并对表格做了筛选设置,
之前筛选一直不能全部分类,原因是表格中间有空行断了,筛选就不继续查找,小说的ID有的不是连续的这次修正了
这里就不再上传代码了因为变动不大,就是改了re规则。
https://ww.lanzouj.com/id2p1ab


感谢这位提出意见的坛友

有了这个清单,论坛之前有位坛友写了笔趣阁小说下载器,填上书名就可以下载了
然后 喜欢的给个评分 谢谢
操作.gif

免费评分

参与人数 4吾爱币 +3 热心值 +4 收起 理由
cdtily + 1 + 1 用心讨论,共获提升!
wolf4sky + 1 + 1 有时间搞一下知轩藏书的,全是精校的小说,把仙草榜给拉一下
tohjz + 1 + 1 用心讨论,共获提升!
Zeaf + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Zeaf 发表于 2020-5-27 23:57
差不多能看懂,很好的实例
黑狐V 发表于 2020-5-28 00:07
xytwlh 发表于 2020-5-28 00:14
 楼主| fanvalen 发表于 2020-5-28 00:19

什么打不开,下载文件要先解压,在用表格打开需要office或wps
zhuiqiudiyi 发表于 2020-5-28 06:19
收藏,感谢分享!
ghoob321 发表于 2020-5-28 06:22
很好很强大
greatslime 发表于 2020-5-28 06:24
正好书荒了,谢谢分享
xxscwsrym 发表于 2020-5-28 06:37
谢谢楼主,学习了。
寒冰流火 发表于 2020-5-28 06:57
厉害。学习了。感谢。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 14:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表