当前位置: 首页 > article >正文

读书网(文章内容的抓取)

爬虫案例(读书网)(下)_使用requests爬读书网-CSDN博客文章浏览阅读909次,点赞10次,收藏12次。t=N7T8CSDN-读书网https://mp.csdn.net/mp_blog/creation/editor/139306808。_使用requests爬读书网https://blog.csdn.net/eqwaak0/article/details/140504257?spm=1001.2014.3001.5502我们在上个网站,爬取了每本书的名字和作者。现在我们拿去每本书的内容:

一.目标网址

如下的目标网址:

呼唤爱意 - 读书网|dushu.com呼唤爱意,作者:周大新,在线阅读《呼唤爱意》 - 读书网|dushu.comicon-default.png?t=O83Ahttps://www.dushu.com/showbook/137171/

我们还是通过req和Bs4来抓取,这个网站没反爬,我们可以运用简单的方法。
import requests
from bs4 import BeautifulSoup

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'}
    link = f"https://www.dushu.com/showbook/137171/1945373.html"
    r = requests.get(link, headers=headers)
    r.encoding = 'utf-8'
    soup = BeautifulSoup(r.text, 'lxml')

可以看见我们的目标文章的内容。

二.抓取内容:

目标内容:

我们需要抓取每个标题和文字内容:

通过开发者后台可以看见,需要的网址: 

 通过观察html可以观察到我们需要的div和class属性。
    txt_list = soup.find('div',class_='span24')
    # print(txt_list)
    title = txt_list.find('p',class_='text-center text-large padding-top').text
    print('标题:',title)
    context = txt_list.find('div',class_='content_txt').text
    print('内容:',context)
我们通过运行完,成功拿去这本书的内容:

三.总结:

 需要爬取每本的内容可以使用遍历,来抓取数据完成。这个网址是很好练手的网址。
import requests
from bs4 import BeautifulSoup


for i  in range(76,84):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'}
    link = f"https://www.dushu.com/showbook/137171/19453{i}.html"
    r = requests.get(link, headers=headers)
    r.encoding = 'utf-8'

    soup = BeautifulSoup(r.text, 'lxml')
    # print(soup)
    txt_list = soup.find('div',class_='span24')
    # print(txt_list)
    title = txt_list.find('p',class_='text-center text-large padding-top').text
    print('标题:',title)
    context = txt_list.find('div',class_='content_txt').text
    print('内容:',context)


http://www.kler.cn/a/461546.html

相关文章:

  • SQLALchemy如何将SQL语句编译为特定数据库方言
  • mysql 死锁案例及简略分析
  • w~多模态~合集1
  • docker 安装influxdb
  • redis的学习(二)
  • C++ 设计模式:中介者模式(Mediator Pattern)
  • 【Redis知识】Redis进阶-redis还有哪些高级特性?
  • private static final Logger log = LoggerFactory.getLogger()和@Slf4j的区别
  • wpf 基于Behavior库 的行为模块
  • 网络安全 | 物联网安全:从设备到网络的全方位防护
  • day 29 进程exec函数族 ,进程实现无人机模块,exec实现minishell
  • Ribbon和Eureka的集成
  • 黑神话悟空游戏鼠标光标使用教程与下载
  • 探秘Kafka源码:关键内容解析
  • 【Leetcode 热题 100】22. 括号生成
  • 设计模式-创建型模式-工厂模式
  • 【Git_bugs】remote error GH013 Repository rule violations found for.md
  • 【网络】什么是路由协议(Routing Protocols)?常见的路由协议包括RIP、OSPF、EIGRP和BGP
  • ESP8266+STM32+阿里云保姆级教程(AT指令+MQTT)
  • 随笔 | 写在2024的最后一天
  • 线程锁和协程锁的区别
  • Redis Stream:实时数据处理的高效解决方案
  • 2分钟知晓Vscode 插件发布流程
  • 【Rust自学】8.6. HashMap Pt.2:更新HashMap
  • 智能运维分析决策系统:构建高效运维的新篇章
  • 自动化与人工结合:如何平衡效率与风险?