04、Python 爬取免费小说思路

目录

  • Python 爬取免费小说思路
    • 代码解析
      • 爬取东西基本的四行代码:
        • user-agent
      • 安装模块
      • 从 bs4 导入 BeautifulSoup ,
      • 查询某个标签开头的数据
      • 筛选
      • 遍历
        • 获取小说的章节名称
        • 每章小说的链接
        • 获取请求网址的响应
        • 获取小说的内容
      • 筛选内容
        • 整理内容
      • 爬取下载到指定文件夹
  • 完整代码:

Python 爬取免费小说思路

代码解析

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

04、Python 爬取免费小说思路_第1张图片

user-agent

04、Python 爬取免费小说思路_第2张图片

安装模块

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

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

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

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

04、Python 爬取免费小说思路_第3张图片

从 bs4 导入 BeautifulSoup ,

把 res.text 解析成 ‘lxml’ , 相当于把文本原本 text的格式 整理成 lxml格式
04、Python 爬取免费小说思路_第4张图片

查询某个标签开头的数据

解释这行代码的作用:

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

04、Python 爬取免费小说思路_第5张图片

筛选

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

04、Python 爬取免费小说思路_第6张图片

遍历

把筛选的内容进行遍历
获取一条目录 ( 04、Python 爬取免费小说思路_第7张图片

获取小说的章节名称

04、Python 爬取免费小说思路_第8张图片

每章小说的链接

04、Python 爬取免费小说思路_第9张图片

获取请求网址的响应

04、Python 爬取免费小说思路_第10张图片

获取小说的内容

获取小说的内容,但是里面还有各种标签,需要进行筛选
04、Python 爬取免费小说思路_第11张图片

筛选内容

筛选到 
标签了

04、Python 爬取免费小说思路_第12张图片

整理内容

把内容再进行整理,去掉 div 标签
04、Python 爬取免费小说思路_第13张图片

04、Python 爬取免费小说思路_第14张图片

爬取下载到指定文件夹

写入
把小说爬取到指定的文件夹位置
04、Python 爬取免费小说思路_第15张图片

完整代码:

04、Python 爬取免费小说思路_第16张图片
04、Python 爬取免费小说思路_第17张图片
04、Python 爬取免费小说思路_第18张图片

# 导入请求模块(完成具体的某一个功能)
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)

你可能感兴趣的:(Python,小功能,python,数据库,开发语言)