吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3267|回复: 7
收起左侧

[Python 转载] 搜索并下载小说

[复制链接]
止语 发表于 2018-11-20 13:34
本帖最后由 止语 于 2018-11-20 13:47 编辑

emm初次接触爬虫(其实也就是学校说的什么实训,请的老师讲了一周的Python)
不过赶脚很神奇
自己也非常喜欢看小说,每次都去找下载源很麻烦 也就有了个大概思路...就实现了一下
好了上代码
[Python] 纯文本查看 复制代码
import requests
import re
import time

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5796.400 QQBrowser/10.2.2324.400'
}

ss_url = 'https://www.biquge5200.cc/modules/article/search.php?searchkey='



# fp = open('从前有座灵剑山.txt','w',encoding='gbk')
def book_name(book_name):
    fp = open(book_name+'.txt','w',encoding='gbk')        ###  下载到txt文件的名字
    return fp



def get_wz(url,title,fp):   ### 获取文章
    res = requests.get(url,headers=headers)
    res.encoding = 'gbk'
    wz = re.findall('<div id="content">(.*?)</div>',res.text,re.S)
    fp.write(title+'\n'+'-----------------------------------------------------------------------'+'\n'+wz[0].replace('<p>','').replace('</p>','\n')+'\n'+'-----------------------------------------------------------------------'+'\n'+'-----------------------------------------------------------------------'+'\n\n\n')
    print(wz[0])



def get_wz_url(wz_url,fp):   #   获取文章目录的函数

    res = requests.get(wz_url,headers=headers)
    res.encoding = 'gbk'
    link = re.findall('<dd>.*?<a href="(.*?)">(.*?)</a>.*?</dd>',res.text,re.S)
    for l in link:
        get_wz(l[0],l[1],fp)




def get_book(url,fp):    ##获得书籍信息

    res = requests.get(url, headers=headers)
    res.encoding = 'gbk'
    title = re.findall('<td class="odd">.*?<a href="(.*?)">(.*?)</a>.*?</td>.*?<td class="even"><a href=.*?>(.*?)</a></td>',res.text,re.S)
    author = re.findall('<td class="even">.*?</td>.*?<td class="odd">(.*?)</td>.*?<td class="even">(.*?)</td>.*?<td class="odd" align="center">(.*?)</td>.*?<td class="even" align="center">(.*?)</td>',res.text,re.S)
    print('正在查找中...')
    time.sleep(2)
    book_url = []
    book_name = []
    print('书籍ID\t', '书籍名称\t\t\t', '书籍作者\t\t', '书籍字数\t', '最后更新时间\t', '连载状态\t', '书籍链接\t', '\n')
    for i in range(0,len(title)):
        print(i,'\t\t',title[i][1],'\t\t',author[i][0],'\t',author[i][1],'\t','\t',author[i][2],'\t',author[i][3],'\t',title[i][0], '\n')
        book_url.append(title[i][0])   ####  将获取到的书籍链接存起来
        book_name.append(title[i][1])   ####  将获取到的书籍名字存起来

    xs_id = int(input('请输入要下载的小说ID:\n'))
    get_wz_url(book_url[xs_id],fp)
    # get_book_name(book_name[xs_id])


if __name__ == '__main__':

    book = input('请输入你想要查找的书名:\n')
    book_url = ss_url+book
    fp = book_name(book)
    get_book(book_url,fp)



接触不到一周吧,写的有点啰嗦,别嫌弃哈




图片不知道为什么上传不上来....有兴趣的小伙伴可以拿去玩玩

运行展示

运行展示

小说下载

小说下载

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

trcsj 发表于 2018-11-20 13:41
图片上传 点击 1.png

图片上传完 点插入
2.png
就完事了
 楼主| 止语 发表于 2018-11-20 13:45
trcsj 发表于 2018-11-20 13:41
图片上传 点击

图片上传完 点插入

哦哦 可以了刚才卡在上传的地方
坐久落花多 发表于 2018-11-20 14:26
fengyexue 发表于 2018-11-20 14:45
不错  自己动手 丰衣足食
君月栩 发表于 2018-11-20 15:07
感谢楼主分享
15161238444 发表于 2018-11-21 00:29

感谢楼主分享
cblhongke 发表于 2019-1-10 19:59
感谢楼主分享 学习一下啊 我也喜欢看小说 哈哈
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-6-13 05:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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