Python爬虫——简单爬取(从网站上爬取一本小说)
从笔下文学网站爬取一本名为《剑来》的小说,作者为烽火戏诸侯
网站网址如下:https://www.bxwxorg.com/
①通过查看网页源码找规律(在此之前请弄清楚网站允许爬取的部分,就该网站而言,没有限制)
②编写代码,实现功能
import requests
from bs4 import BeautifulSoup # 引入BS库def text_save(filename, data): # 定义函数将列表中数据写入到文件中,filename为写入的文件,data为要写入数据列表.file = open(filename, 'w', encoding='utf-8')for i in range(len(data)):s = str(data[i]).replace('[', '').replace(']', '') # 去除[]s = s.replace("'", '').replace(',', '') + '\n' # 去除单引号,逗号,每行末尾追加换行符file.write(s) # 将列表中数据依次写入文件中file.close()print("保存文件成功")res = requests.get('https://www.bxwxorg.com/read/6964/')
html = res.text
soup = BeautifulSoup(html, 'html.parser')
find_title = soup.find('div', id="info") # 查找书名和作者名字的父级标签
title = find_title.find('h1') # 获取书名
author = find_title.find('p') # 获取作者名字
print('书名:', title.text, '\n作者:', author.text[5:]) # 打印书名和作者名字
find_intro = soup.find('div', id="intro") # 查找书籍简介的父级标签
intro = find_intro.find('p') # 获取书籍简介
print('简介:', intro.text) # 打印书籍简介
list_all = [] # 创建一个列表,为之后临时存放小说内容做铺垫
global m # 定义全局变量,记录列表中的元素个数
global n # 定义全局变量,记录之后列表中需要切片的位置(即最新章节部分所占的位置)
m = -1
n = 0find_list = soup.find('dl')
lists = find_list.find_all('dd') # 查找章节内容的父级标签
for list_n in lists:a = list_n.find('a')name = a.text # 获取章节名称chapter_url = a['href'] # 获取章节链接res1 = requests.get(chapter_url) # 开始根据章节链接获取章节内容html1 = res1.textsoup1 = BeautifulSoup(html1, 'html.parser')find_article = soup1.find('div', id="content")articles = find_article.find_all('p')print(name, chapter_url)list_all.append([name]) # 将得到的章节名称加入到列表中m = m + 1if name == "序章":n = m - 3 # -3是为了给小说名字,作者姓名以及小说简介空出位置留待之后替换使用print(n)for article in articles: # 通过循环遍历得到小说一章节的内容并将其写入到列表中list_all.append([article.text])m = m + 1
list_m = []
list_m = list_all[n:-1] # 通过切片去掉小说前面的最新章节部分,避免与之后重复,并将其赋值给一个新的列表
list_m[0:3] = [title.text, author.text, intro.text] # 将列表中前三个元素替换为小说名字,作者姓名以及小说简介
text_save('剑来.txt', list_m) # 调用函数将列表内容存储到TXT文件中
③结果如下
第一次编写爬虫程序,比较没有思路,本程序通过列表方法暂存数据以实现写入txt文件,比较耗时,如果有更好的方法希望可以教教我。
Python爬虫——简单爬取(从网站上爬取一本小说)相关推荐
- Python实践 - 网络爬虫笔记 - 2、从网站上爬取公开信息
Python实践笔记 - 2.从网站上爬取公开信息 张板书的Python的实践笔记,包括笔记与DeBug的经历. 为了完成一个比较麻烦的实习任务,尝试着做了这样一个爬虫项目. 任务要求之一是要检索安徽 ...
- 利用python编写爬虫程序,从招聘网站上爬取数据,将数据存入到MongoDB数据库中,将存入的数据作一定的数据清洗后做数据分析,最后将分析的结果做数据可视化
教程演示 创建爬虫项目 编写需要爬取的字段(items.py) 编写spider文件(wuyou.py) 编写数据库连接(pipelines.py) 编写反爬措施(settings.py) Mongo ...
- python爬虫系列(5.3-动态网站的爬取的策略)
一.认识动态网站 所谓的动态网站,是使用ajax加载出来的网页,我们打开网页的时候可以正常显示内容,但是我们在显示网页源代码的时候,里面却找不到该节点. 二.常见动态网站的抓取方式 1.直接分析aja ...
- java抓取网页数据_Golang丨Java丨Python爬虫实战—Boss直聘网站数据抓取
我们分别通过Golang.Python.Java三门语言,分别实现对Boss直聘网站的招聘数据进行爬取. 首先打开Boss直聘网站: 然后我们在职位类型中输入Go或者Golang关键字: 然后我们可以 ...
- 【Python 爬虫简单的JavaScript逆向实战】抓取中国电影票房的数据
开篇闲聊 最近也是看完了崔庆才爬虫52讲里面JavaScript逆向部分,里面介绍了从简单到复杂整个JavaScript逆向的方法,里面也有一些实战案例(可以练习的),跟着视频练习之后,虽然也成功了, ...
- Python爬虫项目,获取所有网站上的新闻,并保存到数据库中,解析html网页等(未完待续)
1.需求说明 需求: 爬取虎嗅网站的所有新闻,并保存到数据库中. http://www.huxiu.com 技术: 1.爬虫 获取服务器的资源(urllib) 解析html网页(BeautifulSo ...
- python爬虫下载小说_用PYTHON爬虫简单爬取网络小说
用PYTHON爬虫简单爬取网络小说. 这里是17K小说网上,随便找了一本小说,名字是<千万大奖>. 里面主要是三个函数: 1.get_download_url() 用于获取该小说的所有章节 ...
- 用PYTHON爬虫简单爬取网络小说
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- 爬虫入门--爬取就业网站上的岗位信息构造数据集
爬虫入门--爬取就业网站上的岗位信息.解析爬取的数据构造数据集 爬虫入门实践 爬虫的基本概念 爬虫的技术实现 爬虫入门实践 大家好!随着大数据分析逐渐火热的今天,爬虫技能也成了数据分析师一项不可或缺的 ...
- Python爬虫:运用多线程、IP代理模块爬取百度图片上小姐姐的图片
Python爬虫:运用多线程.IP代理模块爬取百度图片上小姐姐的图片 1.爬取输入类型的图片数量(用于给用户提示) 使用过百度图片的读者会发现,在搜索栏上输入关键词之后,会显示出搜索的结果,小编想大多 ...
最新文章
- SAP UI5 myTask setBindingContext in SAP Fiori application
- 【QGIS入门实战精品教程】3.2:QGIS如何打开ArcGIS创建的个人数据库(MDB)?
- Shell数组操作(添加、删除元素、清空、遍历)
- java int数组任何数之间间隔不能对于指定数,内付极速排序
- DIOCP开源项目-DIOCP3的重生和稳定版本发布
- Ubuntu常用命令及git常用命令
- php调用纯真ip,php调用纯真IP数据库进行IP定位
- es6标准入门(第三版)_阮一峰 pdf
- advised by org.springframework.transaction.interceptor.TransactionInterceptor.invoke(org.aopallian
- 虚拟机ping不通主机
- 超详细的文件上传和下载(Spring Boot)
- 普乐蛙VR航天体验|航天vr设备|航空vr设备厂家案例分享
- Python-梯度下降法实践
- Android权限警告(Signature|privileged permissions not in privapp-permissions whitelist)
- python 英语翻译_python 中英文翻译
- 百度语音合成与语音识别api使用(Java版本)
- aac转化为mp3,详细的转换步骤
- 计算机教育在线投稿,《计算机教育》杂志投稿的一些成功技巧
- C#中TextBox实现换行
- Qt5.订餐系统源代码