python爬虫小说爬取
python爬虫小说爬取
- 前言
- 拿到一个网站最重要的就是分析分析
- 提取每一个链接的内容
- 内容处理
- 有了一个链接里面的小说内容就可以扩展到所有标签的内容了
- 完整代码
- 结果及总结
前言
附上上一篇的链接
练习一下爬虫过程,就在网上随便找了一个小说网站
那就第一个吧,让我开始快乐的爬取
拿到一个网站最重要的就是分析分析
F12 大法最为好用 拿这一周最火的小说为例
点开之后就是小说内容了,还有下一篇上一篇的链接,我们先找到所有内容的链接目录,方便列出所有链接
那我们拿到了所有的 li 标签就是存链接内容的 放在一个块元素里面
我们找的就是这个 用python 处理得到所有链接
Beautifulsoup 是bs4模块里面的用来进行标签解析使用前要import 进来
soup =BeautifulSoup(content,"html.parser")div= soup.find('div',class_="volume-list") #查找div 里面的类属性为volume-list 的内容
然后内 就是找到<a 标签里面的链接了,采用正则表达式提取
findLink= re.compile('<a href="(.*?)"')#生成匹配的内容link =re.findall(findLink,str(div)) 找到所有的链接 div上面生成的不是字符串所以要进行转化
再然后就是要进行提取每一章的名字,采用相同方法
findText=re.compile('title="(.*?)">')text =re.findall(findText,str(div))
提取每一个链接的内容
上面我们提取完了所有链接和名后 点开一个链接单独看
同样方法 解析标签
提取涵盖content 类的div块元素
soup = BeautifulSoup(content, "html.parser")div = soup.find('div', class_="content")
内容直接输出div.text : Beautifulsoup里面输出文本内容的方法
直接得到内容
内容处理
有了一个链接里面的小说内容就可以扩展到所有标签的内容了
这里建议采用try-except 来处理 因为下载一大半的时候会遇到一些问题阻断下载
name_s= (str(text_name[i]).strip()[0:6]+'.txt').replace(' ','')
#生成的文件名
print(name_s,end='')
file= open('./a/'+name_s,'a')#生成在a文件里面
file.write(div.text)
file.close()
print("写入完成")
file.close()
完整代码
采用函数分块思想 每个函数处理相应内容看起来更加直观简单
import urllib.request
from bs4 import BeautifulSoup
import redef find():url= "http://book.zongheng.com/showchapter/672340.html"header={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36"}request= urllib.request.Request(url=url,headers=header)respond =urllib.request.urlopen(request)content= respond.read().decode()soup =BeautifulSoup(content,"html.parser")div= soup.find('div',class_="volume-list")findLink= re.compile('<a href="(.*?)"')link =re.findall(findLink,str(div))findText=re.compile('title="(.*?)">')text =re.findall(findText,str(div))return link,textdef write(all_link,text_name):header={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36"}for i in range(len(all_link)):url =all_link[i]request = urllib.request.Request(url=url, headers=header)respond = urllib.request.urlopen(request)content = respond.read().decode()soup = BeautifulSoup(content, "html.parser")div = soup.find('div', class_="content")name_s= (str(text_name[i]).strip()[0:6]+'.txt').replace(' ','')print(name_s,end='')file= open('./a/'+name_s,'a')file.write(div.text)file.close()print("写入完成")file.close()if __name__ == '__main__':link,text=find()print(link)write(link,text)
结果及总结
- 过程中遇到了一个问题没有加try except 导致爬取一半时候出现错误停止 这时候可以加入try模块 遇到问题不间断
- 还是要多加练习正则匹配和爬虫的实战这样才能更加熟练
- 还有就是 爬几次会遇到 访问异常的情况 之后会补充处理这样问题的文章
python爬虫小说爬取相关推荐
- python爬虫--小说爬取
requests+bs4模块–简单爬虫实例–小说爬取 文章目录 section1:声明 section2:想法 section3:下载链接分析: section4:代码编写 1.导包 2.构建请求头 ...
- python爬虫之爬取起点中文网小说
python爬虫之爬取起点中文网小说 hello大家好,这篇文章带大家来制作一个python爬虫爬取阅文集团旗下产品起点中文网的程序,这篇文章的灵感来源于本人制作的一个项目:电脑助手 启帆助手 ⬆是项 ...
- python爬虫下载小说_用PYTHON爬虫简单爬取网络小说
用PYTHON爬虫简单爬取网络小说. 这里是17K小说网上,随便找了一本小说,名字是<千万大奖>. 里面主要是三个函数: 1.get_download_url() 用于获取该小说的所有章节 ...
- Python爬虫之爬取网络小说并在本地保存为txt文件
Python爬虫之爬取网络小说并在本地保存为txt文件 注:本文使用软件为Sublime Text,浏览器为谷歌浏览器 (新手小白第一次写,写得不好请见谅) **1.**首先找到想要爬取的小说章节目录 ...
- 用PYTHON爬虫简单爬取网络小说
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- python爬取ajax动态内容肯德基门店,Python爬虫如何爬取KFC地址
随着人们生活水平的提高,肯德基这类的快餐消费的十分火爆,成为小朋友和年轻人的最爱,我们到一个地方想要找到肯德基店面,会根据导航获取肯德基地址,那你知道我们也可以使用python爬虫获取KFC地址吗?我 ...
- python爬取网页表格数据匹配,python爬虫——数据爬取和具体解析
标签:pattern div mat txt 保存 关于 json result with open 关于正则表达式的更多用法,可参考链接:https://blog.c ...
- Python爬虫:爬取instagram,破解js加密参数
Python爬虫:爬取instagram,破解js加密参数 instagram 是国外非常流行的一款社交网站,类似的还有像facebook.twitter,这些社交网站对于掌握时事热点.电商数据来源和 ...
- python爬取豆瓣电影top250_用Python爬虫实现爬取豆瓣电影Top250
用Python爬虫实现爬取豆瓣电影Top250 #爬取 豆瓣电影Top250 #250个电影 ,分为10个页显示,1页有25个电影 import urllib.request from bs4 imp ...
- python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...
学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面 import os import requests import re import json from bs4 import B ...
最新文章
- 序列表转换成横向菜单
- python中定义结构体
- oracle rodo 查看大小,Exadata — platforma bazodanowa | Oracle Polska
- OpenLDAP(2.4.3x)服务器搭建及配置说明
- 20-21-2网络管理quiz4
- OpenWRT原版固件安装
- 20145210 20145226实验一
- DO / DTO / BO / VO / AO
- 作业帮冯雪胡不归问题_作业帮学习平台微信服务号关注
- poj 3007 stl
- 经典数据库sql查询50题
- Autocad中批量调整增强属性块中的元素的位置
- 关于iOS 报Command failed with exit 128: git错误额解决方案
- Android中控件设置英文文本内容时区分大小写
- 09_Python3.6+selenium2.53.6自动化测试_通过class_name定位百度输入框
- java过滤微信昵称emoji表情
- 在 vi 编辑器中的命令模式下,删除当前光标处的字符使用 __ 命 令。
- 七夕礼物 | 全网最火的钉子绕线图制作教程
- Charles 的简单使用
- 神策-神策中的营销学
热门文章
- 什么是Banner图?
- 隐藏OEM分区的解决办法和推荐的清理磁盘的方法
- MIKE 21 教程 2.5 水动力模块教学:涡粘系数(Eddy viscosity),河床阻力与曼宁系数(Bed Resistance)
- Web报表系统葡萄城报表:报表设计
- apache实验报告 linux_Apache服务器配置实验报告
- 视频教程-嵌入式Linux驱动教程(韦东山2期)-驱动/内核开发
- 联盛德 HLK-W806 (十三): 运行FatFs读写FAT和exFat格式的SD卡/TF卡
- 北方直播卖货搞钱“第一城“,竟然是临沂,200万人发家快手电商
- DSP开发的一点概念
- Java 线程池常见误区