python爬虫学习一--爬取网络小说实例
最近疫情猖獗,长假憋在家里实在无聊,早上突然看了一篇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') #替换掉连续的 texts = 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爬虫学习一--爬取网络小说实例相关推荐
- python爬虫怎么爬小说_python从爬虫基础到爬取网络小说实例
一.爬虫基础 1.1 requests类 1.1.1 request的7个方法 requests.request() 实例化一个对象,拥有以下方法 requests.get(url, *args) r ...
- Python爬虫学习笔记 -- 爬取糗事百科
Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...
- Python爬虫学习之爬取淘宝搜索图片
Python爬虫学习之爬取淘宝搜索图片 准备工作 因为淘宝的反爬机制导致Scrapy不能使用,所以我这里是使用selenium来获取网页信息,并且通过lxml框架来提取信息. selenium.lxm ...
- Python爬虫练习笔记——爬取一本小说并保存为txt文件
最近竟然开始磕起了黄晓明和尹正的CP!!! 但是万恶的爱某艺不好好更新剧集,居然搞起了超前点映- WTF???有什么是我这个贫穷而又尊贵的VIP用户不能看的吗??? 于是我决定开始看小说了!找个网站把 ...
- Python3网络爬虫,简单爬取网络小说并下载
相信我们常常会有想看的小说,但是不能下载,导致无法在没网的环境下观看..下面将解一下如何用python3爬取网络小说. 本文主要是用于学习,希望大家支持正版. 首先我们需要两个包,我们分别是reque ...
- Python爬虫期末作业 | 爬取起点小说网作者和书名,并以Excel形式存储
使用Python爬虫技术爬取起点小说网作者及书名,并且以xlsx形式保存 前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容. 一. ...
- 【Python爬虫实战】爬取某小说网排行榜上的图书封面图片
文章目录 一.Python爬虫必备两大模块 1.1 requests模块用于发送http请求 1.2 bs4(beautifulsoup)模块用于解析html文本 二.Python爬虫项目演示 2.1 ...
- 为了部落 来自艾泽拉斯勇士的python爬虫学习心得 爬取大众点评上的各种美食数据并进行数据分析
为了希尔瓦娜斯 第一个爬虫程序 csgo枪械数据 先上代码 基本思想 问题1 问题2 爬取大众点评 URL分析 第一个难题 生成csv文件以及pandas库 matplotlib.pyplot库 K- ...
- python爬虫学习之爬取超清唯美壁纸
简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物.然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁 ...
最新文章
- MySQL触发器简介
- leetcode 之Remove Nth Node From End of List(19)
- 随机给出三十道四则运算题目
- spring学习(48):自动装配中定义的bean的作用域
- the development of c language(转)
- Nagios监控平台完全攻略 (二)
- FTP学习的一些笔记
- 【java】RMI教程:入门与编译方法 远程
- 表按某个字段,新增一个序号列
- BERT源码分析PART II
- Redhat7离线安装mysql_linux 离线安装mysql7或者8
- 如何启动一个本地静态服务器
- mac install brew
- python requests urlencode_关于requests的urlencode问题
- 易筋SpringBoot2.1 | 第二篇:Spring Boot配置文件详解
- 【职场日语】日文简历模板
- ManjaroLinux安装NVIDIA驱动
- 开根号的笔算算法图解_怎么用笔算开根号?
- ffmpeg解析出的视频参数PAR,DAR,SAR的意义
- 爬虫案例——模拟登录QQ空间