最近疫情猖獗,长假憋在家里实在无聊,早上突然看了一篇python爬虫文章,当场决定试验一下,参照了一下别人的案例,自己各种踩坑捣鼓了好几个小时,终于成功最后把具体步骤和注意点分享给大家:

1、Python爬虫关键的两个组件是requests和BeautifulSoup,特别是BeautifulSoup组件,认真学习好,会使你的爬取之路事半功倍。

2、初始化爬取需要的变量

# -*- coding:UTF-8 -*-
import requests, sys
import urllib3
from bs4 import BeautifulSoupclass downloader():def __init__(self):self.server = 'http://www.biqukan.com'  #爬取的服务器地址(获取文章内容时用)self.target = 'https://www.biqukan.com/73_73577/' #爬取的文章列表self.names = [] #章节名self.urls = []  #章节地址self.nums = []  #章节数量urllib3.disable_warnings()  #禁用掉运行时报出的ssl警告

3、获取文章的各章节名称、总章节数和各章节内容地址,供下载章节内容时使用

  def get_download_url(self):req = requests.get(url=self.target, verify=False) #不使用https验证req.encoding = 'gbk'  #根据爬取页面的编码设置(目标页面F12查看)text = req.textsoup = BeautifulSoup(text, 'html.parser') #不加参数html.parser也可以运行,但是有预警信息div = soup.find_all('div', class_='listmain') #根据类型和class样式查找标签对象a_bf = BeautifulSoup(str(div[0]), 'html.parser')a = a_bf.find_all('a')self.nums = len(a[12:])  #剔除不必要的章节,并统计章节数for each in a[12:]:self.names.append(each.string)self.urls.append(self.server + each.get('href'))

4、根据章节地址,获取章节内容,并进行格式化处理

  def get_contents(self, target):req = requests.get(url = target, verify=False) #不使用https验证req.encoding = 'gbk' #根据爬取页面的编码设置(目标页面F12查看)text = req.textsoup = BeautifulSoup(text, 'html.parser') #不加参数html.parser也可以运行,但是有预警信息texts = soup.find_all('div', class_='showtxt')texts = texts[0].text.replace('\xa0'*8,'\n\n') #替换掉连续的&nbsptexts = texts.replace('app2();','')pos = texts.find('(https://www.biqukan.com/73_73577/')texts = texts[:pos] #切除掉各章节内容最后无用的信息return texts

5、获取的内容,输出到本地的硬盘文件中

  def writer(self, name, path, text):with open(path, 'a', encoding='gbk') as f: #和爬取页面内容的编码保持一致f.write(name + '\n')f.writelines(text)f.write('\n\n') #换行显示

6、运行控制程序

if __name__ == '__main__':dl = downloader()dl.get_download_url()for i in range(dl.nums):dl.writer(dl.names[i], '神武斗圣.txt', dl.get_contents(dl.urls[i]))print(dl.names[i] + ' ---- 下载完成!')

7、运行效果

python爬虫学习一--爬取网络小说实例相关推荐

  1. python爬虫怎么爬小说_python从爬虫基础到爬取网络小说实例

    一.爬虫基础 1.1 requests类 1.1.1 request的7个方法 requests.request() 实例化一个对象,拥有以下方法 requests.get(url, *args) r ...

  2. Python爬虫学习笔记 -- 爬取糗事百科

    Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...

  3. Python爬虫学习之爬取淘宝搜索图片

    Python爬虫学习之爬取淘宝搜索图片 准备工作 因为淘宝的反爬机制导致Scrapy不能使用,所以我这里是使用selenium来获取网页信息,并且通过lxml框架来提取信息. selenium.lxm ...

  4. Python爬虫练习笔记——爬取一本小说并保存为txt文件

    最近竟然开始磕起了黄晓明和尹正的CP!!! 但是万恶的爱某艺不好好更新剧集,居然搞起了超前点映- WTF???有什么是我这个贫穷而又尊贵的VIP用户不能看的吗??? 于是我决定开始看小说了!找个网站把 ...

  5. Python3网络爬虫,简单爬取网络小说并下载

    相信我们常常会有想看的小说,但是不能下载,导致无法在没网的环境下观看..下面将解一下如何用python3爬取网络小说. 本文主要是用于学习,希望大家支持正版. 首先我们需要两个包,我们分别是reque ...

  6. Python爬虫期末作业 | 爬取起点小说网作者和书名,并以Excel形式存储

    使用Python爬虫技术爬取起点小说网作者及书名,并且以xlsx形式保存 前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容. 一. ...

  7. 【Python爬虫实战】爬取某小说网排行榜上的图书封面图片

    文章目录 一.Python爬虫必备两大模块 1.1 requests模块用于发送http请求 1.2 bs4(beautifulsoup)模块用于解析html文本 二.Python爬虫项目演示 2.1 ...

  8. 为了部落 来自艾泽拉斯勇士的python爬虫学习心得 爬取大众点评上的各种美食数据并进行数据分析

    为了希尔瓦娜斯 第一个爬虫程序 csgo枪械数据 先上代码 基本思想 问题1 问题2 爬取大众点评 URL分析 第一个难题 生成csv文件以及pandas库 matplotlib.pyplot库 K- ...

  9. python爬虫学习之爬取超清唯美壁纸

    简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物.然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁 ...

最新文章

  1. Linux系统是否能够联网
  2. docker中开启时运行多个不同进程,安装ssh,并在启动docker时与jenkins同时启动运行
  3. Tortoise SVN 版本控制常用操作汇总(show log)
  4. Ubuntu下安装OpenGL/Glut库
  5. BugKuCTF 杂项 宽带信息泄露
  6. PyTorch系列入门到精通——GPU的使用
  7. 销售服务器 以次充好 判刑,销售假冒产品怎么判刑处罚,法律怎么规定的?
  8. 卸载/删除Homebrew包,包括其所有依赖项
  9. 银行代码就是银行行号吗?
  10. java怎么求最大值和最小值,java求最大值和最小值
  11. 计算机指法基础知识,电脑打字基础知识及打字指法
  12. 【程序员如何买基金 五】挑选合适的指数和指数基金
  13. 2021最新域名授权系统网站源码 全新一键安装源码+卡密自助授权+全新UI界面
  14. mysql chunk_【MySQL参数】-innodb_buffer_pool_chunk_size
  15. 计算机专业考研上岸率,考研“寒冬年”?2020考研上岸几率到底有多大?
  16. 软件测试自学英语计划,软件测试计划,software testing plan,音标,读音,翻译,英文例句,英语词典...
  17. [转]linux不需要磁盘碎片整理
  18. 数组中的slice()方法和splice()
  19. 【JAVA】-- 期末考试复习题含答案(每章对应题、选择、填空、简答、编程)(下)
  20. 读书笔记16 《傅雷家书》 傅雷傅敏

热门文章

  1. JAVA如何实现图片批量下载
  2. 成为Java顶尖程序员 ,看这11本书就够了
  3. 关于H.266的资料
  4. 【Python-matplotlib】条形统计图
  5. qt designer stylesheet 设置字体加粗无效
  6. IDEA右边的工具栏不见了
  7. asp的开发模式_ASP的完整形式是什么?
  8. python中partial库用法详解
  9. SAP将“在中国,为中国”贯彻到底!
  10. linux命令-文件目录管理