如何用python爬虫从爬取一章小说到爬取全站小说

前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun

很多好看的小说只能看不能下载,教你怎么爬取一个网站的所有小说

知识点:

  1. requests
  2. xpath
  3. 全站小说爬取思路

开发环境:

  1. 版 本:anaconda5.2.0(python3.6.5)
  2. 编辑器:pycharm

第三方库:

  1. requests
  2. parsel

进行网页分析

目标站点:

  • 开发者工具的使用networkelement

爬取一章小说

  • requests库的使用(请求网页数据)
  • 对请求网页数据步骤进行封装
  • css选择器的使用(解析网页数据)
  • 操作文件(数据持久化)
# -*- coding: utf-8 -*-
import requests
import parsel
"""爬取一章小说"""
# 请求网页数据
headers = {
 ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36‘
}
response = requests.get(‘http://www.shuquge.com/txt/8659/2324752.html‘, headers=headers)
response.encoding = response.apparent_encoding
html = response.text
print(html)
# 从网页中提取内容
sel = parsel.Selector(html)
title = sel.css(‘.content h1::text‘).extract_first()
contents = sel.css(‘#content::text‘).extract()
contents2 = []
for content in contents:
 contents2.append(content.strip())
print(contents)
print(contents2)
print("\n".join(contents2))
# 将内容写入文本
with open(title+‘.txt‘, mode=‘w‘, encoding=‘utf-8‘) as f:
 f.write("\n".join(contents2))

爬取一本小说

  • 对爬虫进行重构需要爬取很多章小说,最笨的方法是直接使用 for 循环。
  • 爬取索引页需要爬取所有的章节,只要获取每一章的网址就行了。
import requests
import parsel
"""获取网页源代码"""
# 模拟浏览器发送请求
headers = {
 ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36‘
}
def download_one_chapter(target_url):
 # 需要请求的网址
 # target_url = ‘http://www.shuquge.com/txt/8659/2324753.html‘
 # response 服务返回的内容 对象
 # pycharm ctrl+鼠标左键
 response = requests.get(target_url, headers=headers)
 # 解码 万能解码
 response.encoding = response.apparent_encoding
 # 文字方法 获取网页文字内容
 # print(response.text)
 # 字符串
 html = response.text
 """从网页源代码里面拿到信息"""
 # 使用parsel 把字符串变成对象
 sel = parsel.Selector(html)
 # scrapy
 # extract 提取标签的内容
 # 伪类选择器(选择属性) css选择器(选择标签)
 # 提取第一个内容
 title = sel.css(‘.content h1::text‘).extract_first()
 # 提取所有的内容
 contents = sel.css(‘#content::text‘).extract()
 print(title)
 print(contents)
 """ 数据清除 清除空白字符串 """
 # contents1 = []
 # for content in contents:
 # # 去除两端空白字符
 # # 字符串的操作 列表的操作
 # contents1.append(content.strip())
 #
 # print(contents1)
 # 列表推导式
 contents1 = [content.strip() for content in contents]
 print(contents1)
 # 把列表编程字符串
 text = ‘\n‘.join(contents1)
 print(text)
 """保存小说内容"""
 # open 操作文件(写入、读取)
 file = open(title + ‘.txt‘, mode=‘w‘, encoding=‘utf-8‘)
 # 只能写入字符串
 file.write(title)
 file.write(text)
 # 关闭文件
 file.close()
# 传入一本小说的目录
def get_book_links(book_url):
 response = requests.get(book_url)
 response.encoding = response.apparent_encoding
 html = response.text
 sel = parsel.Selector(html)
 links = sel.css(‘dd a::attr(href)‘).extract()
 return links
# 下载一本小说
def get_one_book(book_url):
 links = get_book_links(book_url)
 for link in links:
 print(‘http://www.shuquge.com/txt/8659/‘ + link)
 download_one_chapter(‘http://www.shuquge.com/txt/8659/‘ + link)
if __name__ == ‘__main__‘:
 # target_url = ‘http://www.shuquge.com/txt/8659/2324754.html‘
 # # 关键词参数与位置参数
 # download_one_chapter(target_url=target_url)
 # 下载别的小说 直接换url
 book_url = ‘http://www.shuquge.com/txt/8659/index.html‘
 get_one_book(book_url)

爬取全站小说

如果想了解更多关于python的应用,可以私信小编

原文地址:https://www.cnblogs.com/python0921/p/12587811.html

时间: 2024-10-03 19:29:05

如何用python爬虫从爬取一章小说到爬取全站小说的相关文章

Python爬虫入门教程: All IT eBooks多线程爬取

All IT eBooks多线程爬取-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来. 然后放着,是的,就这么放着.......然后慢慢的遗忘掉..... All IT eBooks多线程爬取-爬虫分析 打开网址 http://www.allitebooks.com/ 发现特别清晰的小页面,一看就好爬 在点击一本图书进入,发现下载的小链接也很明显的展示在了我们面前,小激动一把,这么清晰无广告的

Python爬虫入门教程 14-100 All IT eBooks多线程爬取

1.All IT eBooks多线程-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来. 然后放着,是的,就这么放着.......然后慢慢的遗忘掉..... All IT eBooks多线程-爬虫分析 打开网址 http://www.allitebooks.com/ 发现特别清晰的小页面,一看就好爬 在点击一本图书进入,发现下载的小链接也很明显的展示在了我们面前,小激动一把,这么清晰无广告的网站

如何用Python爬虫实现百度图片自动下载?

Github:https://github.com/nnngu/LearningNotes 制作爬虫的步骤 制作一个爬虫一般分以下几个步骤: 分析需求 分析网页源代码,配合开发者工具 编写正则表达式或者XPath表达式 正式编写 python 爬虫代码 效果预览 运行效果如下: 存放图片的文件夹: 需求分析 我们的爬虫至少要实现两个功能:一是搜索图片,二是自动下载. 搜索图片:最容易想到的是爬百度图片的结果,我们就上百度图片看看: 随便搜索几个关键字,可以看到已经搜索出来很多张图片: 分析网页

Python爬虫技术干货,教你如何实现抓取京东店铺信息及下载图片

什么是Python爬虫开发 Python爬虫开发,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止.世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析.挖掘.机器学习等提供重要的数据源. Python爬虫实例参考 这是一个用Python爬虫实现抓取京东店铺信息以及下载图片的例子,仅供参考. 信息抓取: 图片下载的:注意: 1.在选择信息的时候用CS

Python 爬虫入门(三)—— 寻找合适的爬取策略

写爬虫之前,首先要明确爬取的数据.然后,思考从哪些地方可以获取这些数据.下面以一个实际案例来说明,怎么寻找一个好的爬虫策略.(代码仅供学习交流,切勿用作商业或其他有害行为) 1).方式一:直接爬取网站 目标网址:http://chanyouji.com/ 注意:这个网站会拦截IP,访问次数过多,IP会被封,所以,上节的IP代理就用到了. a).打开网页,可以看到这是一个游记类的网站,里面有很多人分享的游记.那我们就爬这些游记.说不定以后有时间出去玩的时候可以用到. b).点开其中一篇游记,可以看

Python爬虫入门教程 3-100 美空网数据爬取

简介 从今天开始,我们尝试用2篇博客的内容量,搞定一个网站叫做"美空网"网址为:http://www.moko.cc/, 这个网站我分析了一下,我们要爬取的图片在 下面这个网址 http://www.moko.cc/post/1302075.html 然后在去分析一下,我需要找到一个图片列表页面是最好的,作为一个勤劳的爬虫coder,我找到了这个页面 http://www.moko.cc/post/da39db43246047c79dcaef44c201492d/list.html 列

python爬虫入门练习,使用正则表达式和requests爬取LOL官网皮肤

刚刚python入门,学会了requests模块爬取简单网页,然后写了个爬取LOL官网皮肤的爬虫,代码奉上 #获取json文件#获取英雄ID列表#拼接URL#下载皮肤 #导入re requests模块 import requestsimport reimport time def Download_LOL_Skin(): #英雄信息Json文件地址:https://lol.qq.com/biz/hero/champion.js #获取英雄信息列表 json_url = "https://lol.

Python爬虫入门【7】: 蜂鸟网图片爬取之二

蜂鸟网图片--简介 今天玩点新鲜的,使用一个新库 aiohttp ,利用它提高咱爬虫的爬取速度. 安装模块常规套路 pip install aiohttp 运行之后等待,安装完毕,想要深造,那么官方文档必备 :https://aiohttp.readthedocs.io/en/stable/ 接下来就可以开始写代码了. 我们要爬取的页面,这一次选取的是 http://bbs.fengniao.com/forum/forum_101_1_lastpost.html 打开页面,我们很容易就获取到了页

Python爬虫入门【6】:蜂鸟网图片爬取之一

1. 蜂鸟网图片--简介 国庆假日结束了,新的工作又开始了,今天我们继续爬取一个网站,这个网站为 http://image.fengniao.com/ ,蜂鸟一个摄影大牛聚集的地方,本教程请用来学习,不要用于商业目的,不出意外,蜂鸟是有版权保护的网站. 2. 蜂鸟网图片--网站分析 第一步,分析要爬取的网站有没有方法爬取,打开页面,找分页 http://image.fengniao.com/index.php?action=getList&class_id=192&sub_classid=