您当前的位置:首页 > 文章 > Python 爬取免费小说思路

Python 爬取免费小说思路

作者:JH&&HANDSOME 时间:2023-10-23 阅读数:160 人阅读

Python 爬取免费小说思路

代码解析

爬取东西基本的四行代码:

在这里插入图片描述

user-agent

在这里插入图片描述

安装模块

cmd 打开小黑窗,执行安装模块命令

模块的作用:完成具体的某一个功能

pip install bs4 -i https://mirrors.aliyun.com/pypi/simple/

pip install lxml -i https://mirrors.aliyun.com/pypi/simple/

在这里插入图片描述

从 bs4 导入 BeautifulSoup ,

把 res.text 解析成 ‘lxml’ , 相当于把文本原本 text的格式 整理成 lxml格式
在这里插入图片描述

查询某个标签开头的数据

解释这行代码的作用:

soup.find_all('x')-->  参数: 'x'   -->   就能查找获取所有 <x> xxxxxx </x> 的数据

在这里插入图片描述

筛选

筛选小说:思路是从大到小筛选,实际先筛选小的,找不到再扩大范围筛选

在这里插入图片描述

遍历

把筛选的内容进行遍历
获取一条目录 (<a 开头的),就是遍历每一条小说的数据
在这里插入图片描述

获取小说的章节名称

在这里插入图片描述

每章小说的链接

在这里插入图片描述

获取请求网址的响应

在这里插入图片描述

获取小说的内容

获取小说的内容,但是里面还有各种标签,需要进行筛选
在这里插入图片描述

筛选内容

筛选到 <div> 标签了

在这里插入图片描述

整理内容

把内容再进行整理,去掉 div 标签
在这里插入图片描述

在这里插入图片描述

爬取下载到指定文件夹

写入
把小说爬取到指定的文件夹位置
在这里插入图片描述

完整代码:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 导入请求模块(完成具体的某一个功能)
import requests
# 把爬虫伪装成一个浏览器,去访问网址
wz = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'}
# 1、地址:   网址:某一篇具体的小说的网址
url = 'https://book.xxxxxxx.com/showchapter/624942.html'
# 2、请求:   请求网址的响应
res = requests.get(url, headers=wz)
# print(res)

# 响应码
# res.status_code
# 响应内容 ---  视频、音乐、图片
# res.content
# 响应的文本数据
# print(res.text)

# 从 bs4 导入 BeautifulSoup
from bs4 import BeautifulSoup
# 3、整理
# 把 res.text  解析成 'lxml' , 相当于把文本原本 text的格式 整理成 lxml格式
soup = BeautifulSoup(res.text, 'lxml')
# print(soup)

# 4、筛选
# 参数 : 'li' --> 就能查找获取所有 <li> xxxxxx </li> 的数据
# soup.find_all('x')-->  参数 : 'x' --> 就能查找获取所有 <x> xxxxxx </x> 的数据
s = soup.find_all('li')
# print(s)

# 筛选:思路是从大到小筛选,实际先筛选小的,找不到再扩大范围筛选
# 从文档中找出 li class='col-4' 的数据 ,  class_  : class 是关键字,所以加个下划线做区分
lists = soup.find_all('li', class_="col-4")
# print(lists)

# 遍历获取
for l in lists:
    
    # 获取一条目录  (<a 开头的)
    a = l.find('a')

    # 获取标题,就是小说章节名称
    title = a.text

    # 1、地址---------获取这一章节小说的链接
    link = a.get('href')

    # 2、请求
    res = requests.get(link, headers=wz)

    # 3、整理
    soup = BeautifulSoup(res.text, 'lxml')

    # 4、筛选内容
    cont = soup.find('div', class_="content")

    # 整理好的内容
    sortOutCont = '\n'.join(cont.stripped_strings)

    # 爬取出来, 需要自己用小说标题名创建一个文件夹,把 text 写入文件,w--> 文本文件的写入 , wb 是二进制文件的写入
    open(f'xxx的探险/{title}.txt', 'w').write(sortOutCont)  

本站大部分文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了您的权益请来信告知我们删除。邮箱:1451803763@qq.com

标签:应用爬虫