Python实战项目1——自动获取小说工具

简介: Python实战项目1——自动获取小说工具

今天分享利用pyhton简单爬取小说,以大家最爱的《斗罗大陆》为例。

准备

win11

pycharm

Edge浏览器

开始

首先打开浏览器,搜素《斗罗大陆》小说,点开任意结果网站,本次以下图为例:

打开pycharm,做准备工作,

如若没有安装request 利用以下代码安装。

pip install requests

导入。

# 怎么发送请求
# pip install requests
import request

发送给谁

搞定URL地址,即小说地址。

url = 'https://www.93xscc.com/9034/2126907.html'

发送请求

    resp = requests.get(url,headers=headers)

这里为什么要用get 解释一下:

我们可以打开网页,右键——检查——网络——Ctrl+r刷新

可以发现如图所示:可以看到请求方法是.get方法。

响应信息

print(resp.text)
• 1

注意:我们平时访问是用浏览器访问,但是由于我们编写代码,利用python,为了让网站认为我们的访问属于正常用户行为和范围,为了打入内部,我们只能伪装自己。现在去伪装:

下拉继续找到箭头所指,翻译过来叫用户代理,简单来说就是表达了我们用的什么电脑系统和什么电脑浏览器访问的网址。

伪装自己

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

之后完整运行,结果如图所示:会出现一堆乱码。

设置编码

  # 设置编码
    resp.encoding = 'utf-8'

之后即可看到完整信息。但是这并不是我们想要的,我们只需要文字,不需要那些符号字母。所以下一步我们可以提取文字。

提取文字

这会我们需要新的模块

pip install lxml

安装后导入

# pip install lxml
from lxml import etree

回来网页,右键检查看一下效果。会发现文字都在p里面,这是我们借助一个拓展程序

这时我们借助一个拓展程序

没有安装的可以去看我的这篇文章。我们点开这个工具,快捷键Ctrl+shift+z

此时我们该写什么呢,因为我们在div中,所以如图所示输入内容即可:

此时我们的文字就提取出来了。然而有些内容我们是不需要的,如下图。

输入以下代码。

//div[@class="m-tpage"]/p

获取title信息:

//h1/test()

到此基本搞定,尝试打印结果。

print(info)
 print(title)

这是我们发现一堆内容,因为没有显示文本内容。

加上text即可

//div[@class="m-post"]/p/text()

之后保存文件。即可实现运行。

完整代码如下:

# 怎么发送请求
# pip install requests
import requests
# pip install lxml
from lxml import etree
# 发送给谁
url = 'https://www.93xscc.com/9034/2126907.html'
while True:
    # 伪装自己
   headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.52'
}
    # 发送请求
    resp = requests.get(url,headers=headers)
    # 设置编码
    resp.encoding = 'utf-8'
    # 响应信息
    # print(resp.text)
    e = etree.HTML(resp.text)
    info = '\n'.join(e.xpath('//div[@class="m-post"]/p/text()'))
    title = e.xpath('//h1/text()')[0]
    url = f'https://www.85xs.cc{e.xpath("//tr/td[2]/a/@href")[0]}'
    # print(info)
    # print(title)
    # 保存
    with open('斗罗大陆.txt','w',encoding='utf-8') as f:
        f.write(title+'\n\n'+info+'\n\n')
    '''
    退出循环 break
    if url == '/book/douluodalu1/'
    '''


相关文章
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
17天前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
92 61
Python装饰器实战:打造高效性能计时工具
|
13天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
61 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
22天前
|
数据可视化 算法 数据挖掘
Python时间序列分析工具Aeon使用指南
**Aeon** 是一个遵循 scikit-learn API 风格的开源 Python 库,专注于时间序列处理。它提供了分类、回归、聚类、预测建模和数据预处理等功能模块,支持多种算法和自定义距离度量。Aeon 活跃开发并持续更新至2024年,与 pandas 1.4.0 版本兼容,内置可视化工具,适合数据探索和基础分析任务。尽管在高级功能和性能优化方面有提升空间,但其简洁的 API 和完整的基础功能使其成为时间序列分析的有效工具。
66 37
Python时间序列分析工具Aeon使用指南
|
13天前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
46 20
|
2月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
67 33
|
28天前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
|
2月前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
62 10
|
2月前
|
数据可视化 编译器 Python
Manim:数学可视化的强大工具 | python小知识
Manim(Manim Community Edition)是由3Blue1Brown的Grant Sanderson开发的数学动画引擎,专为数学和科学可视化设计。它结合了Python的灵活性与LaTeX的精确性,支持多领域的内容展示,能生成清晰、精确的数学动画,广泛应用于教育视频制作。安装简单,入门容易,适合教育工作者和编程爱好者使用。
459 7
|
2月前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。

热门文章

最新文章