python爬虫-bs4案例爬取三国演义全文-小林月

目录

一、网页分析:

1.1、查看网页请求和网页参数

 1.2、文章内容的标签

二、完整代码

一、网页分析:

《三国演义》全集在线阅读_史书典籍_诗词名句网https://www.shicimingju.com/book/sanguoyanyi.html

网站如上:显示如下

利用抓包器查看数据包类型

 可以看出三国演义的标题在页面源码的<li>里面

而每个<li>标签的href则是对应章节的详细内容的网址。

因此我们可以先爬取网页的标题和对应的章节网址,再以此爬取章节对应的内容。

1.1、查看网页请求和网页参数

1.1.1 标题页面

1.1.2 详情页页面

 1.2、文章内容的标签

1.2.1、详情页

 1.2.2 标签页(外页)


 
二、完整代码

# 网址:https://www.shicimingju.com/book/sanguoyanyi.html
import requests
from bs4 import BeautifulSoup
import lxml


if __name__=="__main__":
    #1 先爬取整张页面数据
    url = 'https://www.shicimingju.com/book/sanguoyanyi.html'
    #1.1 UA伪装
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'
    }
    #1.2 发起请求并获取数据
    page_text = requests.get(url=url, headers=headers).content
    #2 我在首页中解析出章节的标题和详情页的url
    # 2.1, 实例化BeautifulSoup对象,要将页面源码数据加载到该对象中
    soup = BeautifulSoup(page_text, 'lxml')

    # 解析章节标题和详情页的url
    #<div class="book-mulu">下存放的标签和详情页地址 .book-mulu表示搜索数据
    li_biaoti=soup.select('.book-mulu > ul > li')
    #持久化存贮
    fp = open('./sanguo.txt', 'w', encoding='utf-8')
    #返回的是存放一系列li标签的列表,取出每个数据
    for li in li_biaoti:#对每个数据进行提取
        title=li.a.string#三国演义章节标题
        章节_url="https://www.shicimingju.com/"+li.a['href']#获取每个章节的网址
        #分别对每个章节进行数据爬取
        章节_text = requests.get(url=章节_url, headers=headers).content
        detail_soup = BeautifulSoup(章节_text, 'lxml')
        div_tag = detail_soup.find('div', class_='chapter_content')
        # 解析到了章节的内容
        content = div_tag.text
        #写入建立好的文件内
        fp.write(title+':'+content+'\n')
        print(title, '爬取成功')

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要用Python三国演义全文,可以先通过引用提供的链接访问《三国演义》的在线阅读网页。然后,可以使用Python的网络爬虫库,比如Requests和BeautifulSoup,来获该网页的内容。 首先,使用Requests库发送GET请求,获网页的HTML内容。可以使用以下代码来实现: ```python import requests url = "https://www.shicimingju.com/book/sanguoyanyi.html" response = requests.get(url) html_content = response.text ``` 接下来,使用BeautifulSoup库解析HTML内容,并提出章节的标题和对应的章节网址。可以使用以下代码来实现: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, "html.parser") chapter_list = soup.find_all("div", class_="book-mulu") for chapter in chapter_list: chapter_title = chapter.a.text chapter_url = chapter.a["href"] print(chapter_title, chapter_url) ``` 通过以上代码,就可以获到《三国演义》每个章节的标题和对应的章节网址了。 接下来,可以根据章节网址,再次发送GET请求,获章节的内容。可以使用以下代码来实现: ```python chapter_url = "章节的网址" # 将章节的网址替换为具体的章节网址 chapter_response = requests.get(chapter_url) chapter_html = chapter_response.text ``` 然后,可以继续使用BeautifulSoup库解析章节的HTML内容,提出章节的文本内容。可以使用以下代码来实现: ```python chapter_soup = BeautifulSoup(chapter_html, "html.parser") chapter_content = chapter_soup.find("div", class_="chapter_content").text print(chapter_content) ``` 通过以上代码,就可以获到《三国演义》每个章节的内容了。 请注意,以上代码仅为示例,具体的网页结构和解析方式可能会因网页的更新和变化而有所不同。需要根据实际情况进行调整和修改。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* *2* [python爬虫-bs4案例三国演义全文-小林月](https://blog.csdn.net/qq_53953480/article/details/129915362)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值