#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Version : 3.8
# @Datetime : 2023/1/22 16:18
# @Project : SMF
# @File : 用request下载小说.py
path = "https://www.xxsy.net/chapterlist/25051241301040904"
import requests
from bs4 import BeautifulSoup
def join_str(path) :
'''
函数
把小说章节内容合并成一篇文章
:param path: 小说首页路径
:return: 合并好的文章
'''
reply = requests.get(path)
if reply.status_code!=200 :return False
reply.encoding = 'utf-8'
soup = BeautifulSoup(reply.text,'lxml')
return '\n'.join([i.text for i in soup.select('main p')])
def get_nr_w(path):
'''
函数
主要负责把获取的内容写进去
:param path: 小说首页路径
:return: None
'''
reply = requests.get(path)
if reply.status_code!=200 :return False
reply.encoding = 'utf-8'
soup = BeautifulSoup(reply.text,'lxml')
# print('888888888......',soup)
for i in soup.select('a') :
if i.get('href') and i.get('title') :
# print(i.get('href'))
path = f"https://www.xxsy.net{i.get('href')}"###href是每个章节独有的路径
nr = join_str(path)
# print(nr)
title = i.get('title')
with open(r'D:\PROJECTS\PyCharm_Project\SMF\基础模块练习\修仙\{}'.format(title),'w',encoding='utf-8') as f :
f.write(nr)
if __name__ == '__main__':
reply = requests.get('https://www.xxsy.net/chapterlist/2505124......')
if reply.status_code == 200 :
get_nr_w(path)
#这个功能用selenium也能实现,但用requests更方便实现
用requests下载小说
于 2023-01-24 09:14:07 首次发布