第103篇Python:Python爬虫系列之书籍爬取,细节拉满

简介: 第103篇Python:Python爬虫系列之书籍爬取,细节拉满

前言
大家好,我是辣条。

不知不觉写了有103篇博文了,辣条以后尽量给大家带上编号,这样方便大家后续查阅,毕竟很多人都是放在收藏里起灰,方便你们后续查找的话你们直接看编号就简单多了。这样你们也可以放心收藏起来了

今天给大家继续爬虫系列,切记不能沉迷,另外也不要轻易模仿。 可以收藏研究一下技术点学长还是特别支持的

目录
前言
一,开发环境
二,程序分析&代码实现
三,项目总结
一,开发环境
​ python3.7

​ pycharm

二,程序分析&代码实现

​ 首先获取它的页面资源:

import requests
from lxml import etree

资源地址

url = ' 地址'

请求头

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36'

}

页面响应

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

数据转换

data = etree.HTML(response.text)
1
2
3
4
5
6
7
8
9
10
11
12
​ 接下来通过页面解析拿到所有的书:

获取到排行榜所有书

book_info_list = data.xpath('//div[@class="item"]')
1
2
进入模块可以发现所有书的详情页面都是放在该路径下:

那么我们可以筛选,拿到path进行拼接:

for book_info in book_info_list:

#拿到path
page_id = book_info.xpath('div[@class="image"]/a/@href')[0]
#拼接到主域名下
url = url[0:19] + page_id

1
2
3
4
5
在详情页面看到有个下载链接,这样可以省了很大的功夫,通过页面来分析:

可以看到它的下载url,是传了参数跟书名过去的,那么可以获取到该链接并且拼接这样就拿到了下载链接,同时拿到书的名字作为下载备用:

for book_info in book_info_list:

#拿到path
page_id = book_info.xpath('div[@class="image"]/a/@href')[0]
#拼接到主域名下
url = url[0:19] + page_id

#获取详情页面
response = requests.get(url=url,headers=headers)
info_page = etree.HTML(response.text)
#拿到下载path
download_url = info_page.xpath('//div[@class="readbtn"]/a/@href')[2]
#拼接url
download_url = url[0:19] + download_url
#拿到书名字
book_name = download_url.split('=')[2]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
接下来对下载链接发起请求,通过文件I/O写入本地:

boo_txt = requests.get(url=download_url,headers=headers)
with open('book/%s.txt'%book_name,'w',encoding='utf-8') as f:
    f.write(boo_txt.text)

1
2
3
让我们来看看结果:

这样就拿到了排行榜的所有书了,非常的方便快捷。

三,项目总结
首先要去手动分析下载的路径步骤,然后将这些步骤用代码一一实现就好啦。轻轻松松又简简单单

这样就拿到了排行榜的所有小说了,非常的方便快捷。 另外还有之前的一些源码啥的都可以在底下的小卡片找我拿,还有一些我之前用的书,脑图路线,视频啥的,都快放不下了~

目录
相关文章
|
6月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
7月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
8月前
|
数据采集 数据挖掘 测试技术
Go与Python爬虫实战对比:从开发效率到性能瓶颈的深度解析
本文对比了Python与Go在爬虫开发中的特点。Python凭借Scrapy等框架在开发效率和易用性上占优,适合快速开发与中小型项目;而Go凭借高并发和高性能优势,适用于大规模、长期运行的爬虫服务。文章通过代码示例和性能测试,分析了两者在并发能力、错误处理、部署维护等方面的差异,并探讨了未来融合发展的趋势。
800 0
|
6月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
7月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
953 19
|
6月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
6月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
7月前
|
数据采集 存储 Web App开发
处理Cookie和Session:让Python爬虫保持连贯的"身份"
处理Cookie和Session:让Python爬虫保持连贯的"身份"
|
8月前
|
数据采集 存储 JSON
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
|
7月前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略

推荐镜像

更多