前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
前文
01、python爬虫入门教程01:豆瓣Top电影爬取
基本开发环境
- Python 3.6
- Pycharm
相关模块的使用
- request
- sparsel
安装Python并添加到环境变量,pip安装需要的相关模块即可。
单章爬取
一、明确需求
爬取小说内容保存到本地
- 小说名字
- 小说章节名字
- 小说内容
# 第一章小说url地址 url = 'http://www.biquges.com/52_52642/25585323.html'
url = 'http://www.biquges.com/52_52642/25585323.html' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } response = requests.get(url=url, headers=headers) print(response.text)
请求网页返回的数据中出现了乱码,这就需要我们转码了。
加一行代码自动转码。
response.encoding = response.apparent_encoding
三、解析数据
根据css选择器可以直接提取小说标题以及小说内容。
def get_one_novel(html_url): # 调用请求网页数据函数 response = get_response(html_url) # 转行成selector解析对象 selector = parsel.Selector(response.text) # 获取小说标题 title = selector.css('.bookname h1::text').get() # 获取小说内容 返回的是list content_list = selector.css('#content::text').getall() # ''.join(列表) 把列表转换成字符串 content_str = ''.join(content_list) print(title, content_str) if __name__ == '__main__': url = 'http://www.biquges.com/52_52642/25585323.html' get_one_novel(url)
四、保存数据(数据持久化)
使用常用的保存方式: with open
def save(title, content): """ 保存小说 :param title: 小说章节标题 :param content: 小说内容 :return: """ # 路径 filename = f'{title}\\' # os 内置模块,自动创建文件夹 if os.makedirs(filename): os.mkdir() # 一定要记得加后缀 .txt mode 保存方式 a 是追加保存 encoding 保存编码 with open(filename + title + '.txt', mode='a', encoding='utf-8') as f: # 写入标题 f.write(title) # 换行 f.write('\n') # 写入小说内容 f.write(content)
保存一章小说,就这样写完了,如果想要保存整本小说呢?
整本小说爬虫
既然爬取单章小说知道怎么爬取了,那么只需要获取小说所有单章小说的url地址,就可以爬取全部小说内容了。
所有的单章的url地址都在 dd 标签当中,但是这个url地址是不完整的,所以爬取下来的时候,要拼接url地址。
def get_all_url(html_url): # 调用请求网页数据函数 response = get_response(html_url) # 转行成selector解析对象 selector = parsel.Selector(response.text) # 所有的url地址都在 a 标签里面的 href 属性中 dds = selector.css('#list dd a::attr(href)').getall() for dd in dds: novel_url = 'http://www.biquges.com' + dd print(novel_url) if __name__ == '__main__': url = 'http://www.biquges.com/52_52642/index.html' get_all_url(url)
这样就获取了所有的小说章节url地址了。
爬取全本完整代码
import requests import parsel from tqdm import tqdm def get_response(html_url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } response = requests.get(url=html_url, headers=headers) response.encoding = response.apparent_encoding return response def save(novel_name, title, content): """ 保存小说 :param title: 小说章节标题 :param content: 小说内容 :return: """ filename = f'{novel_name}' + '.txt' # 一定要记得加后缀 .txt mode 保存方式 a 是追加保存 encoding 保存编码 with open(filename, mode='a', encoding='utf-8') as f: # 写入标题 f.write(title) # 换行 f.write('\n') # 写入小说内容 f.write(content) def get_one_novel(name, novel_url): # 调用请求网页数据函数 response = get_response(novel_url) # 转行成selector解析对象 selector = parsel.Selector(response.text) # 获取小说标题 title = selector.css('.bookname h1::text').get() # 获取小说内容 返回的是list content_list = selector.css('#content::text').getall() # ''.join(列表) 把列表转换成字符串 content_str = ''.join(content_list) save(name, title, content_str) def get_all_url(html_url): # 调用请求网页数据函数 response = get_response(html_url) # 转行成selector解析对象 selector = parsel.Selector(response.text) # 所有的url地址都在 a 标签里面的 href 属性中 dds = selector.css('#list dd a::attr(href)').getall() # 小说名字 novel_name = selector.css('#info h1::text').get() for dd in tqdm(dds): novel_url = 'http://www.biquges.com' + dd get_one_novel(novel_name, novel_url) if __name__ == '__main__': novel_id = input('输入书名ID:') url = f'http://www.biquges.com/{novel_id}/index.html' get_all_url(url)
风云阁资源网 Design By www.bgabc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
风云阁资源网 Design By www.bgabc.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年09月21日
2024年09月21日
- 黑神话悟空上品鼠禁卫精魄获取方法一览|上品鼠禁卫精魄收集攻略
- 优美的旋律至真的情怀《品茶轻音乐·极品典藏Vol.1CD1》[WAV+CUE]
- 曾嵘《峥嵘岁月DSD(试音碟)》WAV+CUE
- 小提琴天碟AlfredoCampoli坎波利-贝多芬D大调小提琴协奏曲与普罗米修斯作品选FLAC
- 博主称本周游戏业内动荡无比:高价PS5 Pro、Xbox裁员等
- 米哈游也搞AI?米哈游AI大模型Glossa完成备案
- G胖变G瘦后:玩家担心其健康状况:如果他出事 游戏业将发生巨变
- 群星.1995-SUMMER.PASSION.REMIX【宝丽金】【WAV+CUE】
- 王栎鑫.2008-天生一对(EP)【种子音乐】【WAV+CUE】
- 曾淑勤.1993-金选集【点将】【WAV+CUE】
- 《命运2》新枪涉嫌抄袭Bungie响应正在调查
- 《刺客信条:影》引发争议日本预购表现低迷
- 黑神话悟空上品狸侍长精魄获取方法一览|上品狸侍长精魄收集攻略
- 大自然环保音乐系列《风花雪月》4CD/DTS[WAV分轨]
- 模拟之声慢刻CD甄妮《86精选[日本母带]》[低速原抓WAV+CUE]