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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 577|回复: 15
收起左侧

[Python] 新手第一次爬一本小说,如何章节保存?

[复制链接]
hackhase 发表于 2022-8-5 22:40
看了很多大佬的视频,发现爬小说好像是最基本的操作。
思路:就是先获取小说的URL,然后抓取每个章节的href,再拼接成章节URL
最后就是保存小说了
具体代码如下:
[Python] 纯文本查看 复制代码
import requests
import parsel
import os
url = 'https://www.qb5.tw/book_116659/'
headers ={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
}
response = requests.get(url=url, headers=headers).text
# print(response)
selector = parsel.Selector(response)
title = selector.css('#info h1::text').get()
# print(title)
href = selector.css('body > div.zjbox > dl > dd a::attr(href)').getall()
# print(novel_url)
for link in href:
    novel_link = 'https://www.qb5.tw/book_116659/'+link
    response_1 = requests.get(novel_link).text
    selector1 = parsel.Selector(response_1)
    name = selector1.css('#main > h1::text').get()
    content = selector1.css('#content::text').getall()
    content = '\n'.join(content)
    # print(content)
    with open(title + '.txt', mode='a', encoding='utf-8') as f:
        f.write(name)
        f.write('\n')
        f.write(content)
        print(name)

仅做交流用!

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

啥都想学Master 发表于 2022-8-8 15:04
Tysaay 发表于 2022-8-6 13:54
乱码,你要设置编码resp.encoding = resp.apparent_encoding #自动识别编码并设置解码

最近我爬的时候发现有些章节被故意插入一段乱码如下:“  銆愯璇嗗崄骞寸殑鑰佷功鍙嬬粰鎴戞帹鑽愮殑杩戒功锛屽挭鍜槄璇伙紒鐪熺壒涔堝ソ鐢紝寮?杞︺?佺潯鍓嶉兘闈犺繖涓湕璇诲惉涔︽墦鍙戞椂闂达紝杩欓噷鍙互涓嬭浇 .. 銆/p>  ”,虽然网页用gbk编码,之后改用gb18030解码,还是有?这个符号乱码无法被解码会报错。请问这个有什么办法解决吗。目前我是用try语句不行就跳过的方式。另外使用正则爬取中途会卡住但不会报错也没有反应,再运行又没事了,用xpath就不会如此会是什么原因呢?  问题有点多,抱歉。感谢大佬!
a397555462 发表于 2022-8-6 11:15
[Python] 纯文本查看 复制代码
import requests


def download_txt(name):
    keyword={ "searchkey": name}
    host='https://www.qb5.tw'
    resp = requests.get("https://www.qb5.tw/modules/article/search.php", params=keyword)
    resp=resp.text
    return resp
print(download_txt('宇宙职业选手'))



请教
下这个乱码怎么解决?
image.png
729 发表于 2022-8-6 10:55
接下来就可以异步下载啦,多线程下载呀等等
hckj1919 发表于 2022-8-6 11:30
这个可以,可以看个过瘾
fanvalen 发表于 2022-8-6 11:36
<meta charset="gbk">
解码方式是gbk不是utf-8
写文件的不要打印,打印会大大降低速度
Alexwhich 发表于 2022-8-6 12:15
a397555462 发表于 2022-8-6 11:15
[mw_shl_code=python,true]
import requests

是不是没换成UTF-8
知心 发表于 2022-8-6 12:19
a397555462 发表于 2022-8-6 11:15
[mw_shl_code=python,true]
import requests

设置一下返回内容的编码
Mahone1 发表于 2022-8-6 12:23
fanvalen 发表于 2022-8-6 11:36
解码方式是gbk不是utf-8
写文件的不要打印,打印会大大降低速度

大佬你好,“写文件的不要打印,打印会大大降低速度”这句话怎么解啊,能不能详细解释下,谢谢
fanvalen 发表于 2022-8-6 12:39
Mahone1 发表于 2022-8-6 12:23
大佬你好,“写文件的不要打印,打印会大大降低速度”这句话怎么解啊,能不能详细解释下,谢谢

能直接写txt的就不要print,哪怕你每次只打印一个章节名字也要耗很长的时间
当然你不在意时间长短,调试打印也是可以的
当然你也可以做一个时间计时来看看打印不打印的时间差多少
Mahone1 发表于 2022-8-6 12:41
fanvalen 发表于 2022-8-6 12:39
能直接写txt的就不要print,哪怕你每次只打印一个章节名字也要耗很长的时间
当然你不在意时间长短,调试 ...

好的,谢谢
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2022-8-16 15:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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