6. python爬虫——基于bs4数据解析技术爬取文章
2023-09-11 14:20:02 时间
1.需求
爬取https://www.shicimingju.com/book/sanguoyanyi.html上三国演义的所有内容
2.分析
进入网站后,发现为单页,内容在跳转链接里
使用抓包工具进行查看,发现跳转到详情内容的章节,均存在于< div calss=“book-mulu”>下的a标签中,< a >具有属性href具有对应的详情内容URL和每一章的章节名字。
因为需要获取所有章节的URL和文本内容这两个数据,因此使用bs4中的select()要比find()更为方便,通过select层级选择器’div > ul > li > a’来获取a标签中的属性及内容。
获取到属性后,便可通过URL跳转到详情页中,打开详情页
发现文章中的内容均在< div class=“chapter_content”>下的< p>标签中,此时需用find(‘div’,class_=‘chater_content’)便可以实现文本内容的获取。
3.代码
import requests
from bs4 import BeautifulSoup
if __name__ == "__main__":
# 对首页的页面数据进行爬取
url = 'https://www.shicimingju.com/book/sanguoyanyi.html'
headers = {
'User-Agent':'Mozilla/....'
}
page_text = requests.get(url=url,headers=headers).text
# 在首页中解析出章节的标题和详情页的url
# 1.实例化BeautifulSoup对象,需要将页面源码数据加载到该对象中
soup = BeautifulSoup(page_text,'lxml')
# 解析章节标题和详情页的url
a_list = soup.select('.book-mulu > ul > li > a')
with open('./sanguo.txt','w',encoding='utf-8') as fp:
for a in range(len(a_list)-1):
title = a_list[a].string
detail_url = 'http://www.shicimingju.com'+a_list[a]['href']
# 对详情页发起请求,解析出章节内容
detail_page_text = requests.get(url=detail_url,headers=headers).text
# 解析出详情页中相关的章节内容
detail_soup = BeautifulSoup(detail_page_text,'lxml')
div_tag = detail_soup.find('div',class_='chapter_content')
# 解析到章节的内容
content = div_tag.text
fp.write(title+':'+content+'\n')
print(title,'success!')
4.实现效果
相关文章
- Python爬虫之简单爬虫框架实现
- 【华为云技术分享】Python 中的异常和错误
- 第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门搜索
- 雨痕 的《Python学习笔记》--附脑图(转)
- paip. 解决php 以及 python 连接access无效的参数量。参数不足,期待是 1”的错误
- 华为OD机试 - 快递投放问题(Java & JS & Python)
- Python编程:利用python编程实现对基于时间序列的数据(dataframe格式)按照指定时间范围进行单方向关联,不存在的日期补充为默认的NaN
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar)
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)
- Python语言学习之常见语句命令那些事:python和常见语句命令(条件语句、pass语句)使用方法之详细攻略
- Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略
- 零基础学Python-爬虫-2、scrapy框架(测试案例篇·技术点在后面文章内讲解)【测试将一篇小说的所有访问路径与标题存储到一个文件下】
- Python零基础—网络爬虫入门,附学习路线+笔记+视频教程
- Python爬虫基础讲解:数据持久化——json 及 CSV模块简介
- python爬取4K超清画质手机壁纸,壁纸这东西当然是越多越好啦~
- Python零基础爬虫之回车桌面壁纸并实现自动换壁纸(内附完整源码)
- 【Python爬虫】新手入门案例教学(一):爬取豆瓣电影排行有关信息
- Python实现人工神经网络回归模型(MLPRegressor算法)并基于网格搜索(GridSearchCV)进行优化项目实战
- Python简单图片爬虫
- Python编程:python中的计时器timeit模块
- python爬虫:scrapy可视化管理工具spiderkeeper部署
- python isinstance用法
- 《Fluent Python》读书笔记-2.3
- python+appium自动化测试-调用服务器接口
- 【Leetcode刷题Python】455.分发饼干