用python爬取小说。(id定位)

        直接上程序,我就说怎么用就好了。

import requests
from bs4 import BeautifulSoup
import re

h={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0'}

u=input('小说网址:')
b=input('半节点:')
w=input('文本id:')
x=input('下一章id:')
n=input('书名:')
c=int(input('剩余章数:'))
q=len(input('清除末尾字数:'))

for i in range(c):
    r=requests.get(u,headers=h)
    s=BeautifulSoup(r.text,'html.parser')
    t=s.select('#'+w)[0].text[:-q]
    t=re.sub("  ","\n  ",t)
    t = t.replace('\ufffd', '()')#替换
    u='https://m.hafuklxt.cc/'+s.select("#"+x)[0].get('href')
    with open(n+'.txt','a') as f:
        f.write(t)
    print(i)

print('下载完成')

        使用时一行一行输入信息,具体上面有写,下面是示范。

目标:我不是戏神

运行程序

小说网址:https://m.hafuklxt.cc/chapter/15543941/67855658.html
半节点:https://m.hafuklxt.cc/
文本id:chaptercontent
下一章id:pb_next
书名:我不是戏神
剩余章数:700
清除末尾字数:111111111111111111111111111111111#有32个字就行

        其实本质上就是下面这个程序

import requests
from bs4 import BeautifulSoup
import re
u='https://m.hafuklxt.cc/chapter/15543941/67855658.html'
h={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0'}
for i in range(30):
    r=requests.get(u,headers=h)
    s=BeautifulSoup(r.text,'html.parser')
    t=s.select('#chaptercontent')[0].text[:-32]
    t=re.sub("  ","\n  ",t)
    t = t.replace('\ufffd', '()')#替换
    u='https://m.hafuklxt.cc/'+s.select("#pb_next")[0].get('href')
    with open('cs.txt','a') as f:
        f.write(t)
    print(i)

        id用f12开发者工具找,如图所示。

        本程序只能用id定位,当然,改一下就能用其他的定位方法了,记住文件是追加,所以如果有同名文件或者程序重复运行的话内容就会重复,当然,把网址填成断的那一章就行,比如说从100章更新到110章,你已经爬了100章了,网址就用101章的就行了,对了要在同名文件夹下,不然你就要自己改程序写入文本的位置。

        对了,由于处理特殊字符的方式是直接消灭,所以有些地方可能有空白,但应该不怎么影响阅读体验吧,主要是我只会替换特殊字符。

        ok,本篇文章结束了,希望能帮到你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值