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

【python爬虫案例】用python爬豆瓣读书TOP250排行榜!

文章目录

  • 一、爬虫对象-豆瓣读书TOP250
  • 二、python爬虫代码讲解
  • 三、讲解视频
  • 四、完整源码

一、爬虫对象-豆瓣读书TOP250

您好,我是 @马哥python说 ,一名10年程序猿。

今天我们分享一期python爬虫案例讲解。爬取对象是,豆瓣读书TOP250排行榜数据:
https://book.douban.com/top250豆瓣读书250页面

开发好python爬虫代码后,爬取成功后的csv数据,如下:
部分爬取结果

代码是怎样实现的爬取呢?下面逐一讲解python实现。

二、python爬虫代码讲解

首先,导入需要用到的库:

import requests  # 发送请求
from bs4 import BeautifulSoup  # 解析网页
import pandas as pd  # 存取csv
from time import sleep  # 等待时间

然后,向豆瓣读书网页发送请求:

res = requests.get(url, headers=headers)

利用BeautifulSoup库解析响应页面:

soup = BeautifulSoup(res.text, 'html.parser')

用BeautifulSoup的select函数,(css解析的方法)编写代码逻辑,部分核心代码:

name = book.select('.pl2 a')[0]['title']  # 书名
book_name.append(name)
bkurl = book.select('.pl2 a')[0]['href']  # 书籍链接
book_url.append(bkurl)
star = book.select('.rating_nums')[0].text  # 书籍评分
book_star.append(star)
star_people = book.select('.pl')[1].text  # 评分人数
star_people = star_people.strip().replace(' ', '').replace('人评价', '').replace('(\n', '').replace('\n)','')  # 数据清洗
book_star_people.append(star_people)

最后,将爬取到的数据保存到csv文件中:

def save_to_csv(csv_name):"""数据保存到csv:return: None"""df = pd.DataFrame()  # 初始化一个DataFrame对象df['书名'] = book_namedf['豆瓣链接'] = book_urldf['作者'] = book_authordf['译者'] = book_translaterdf['出版社'] = book_publisherdf['出版日期'] = book_pub_yeardf['价格'] = book_pricedf['评分'] = book_stardf['评分人数'] = book_star_peopledf['一句话评价'] = book_commentdf.to_csv(csv_name, encoding='utf8')  # 将数据保存到csv文件

其中,把各个list赋值为DataFrame的各个列,就把list数据转换为了DataFrame数据,然后直接to_csv保存。

这样,爬取的数据就持久化保存下来了。

三、讲解视频

同步讲解视频:【python爬虫案例】利用python爬虫爬取豆瓣读书TOP250的数据!

四、完整源码

附完整源代码:【python爬虫案例】利用python爬虫爬取豆瓣读书TOP250的数据!


我是 @马哥python说 ,持续分享python源码干货中!

http://www.lryc.cn/news/148060.html

相关文章:

  • Qt中 gui 模块和 widgets 模块的区别
  • feign调用流程
  • 15-数据结构-二叉树的遍历,递归和非递归
  • 最新绕过目标域名CDN进行信息收集技术
  • overlayfs
  • Mysql中九种索引失效场景分析
  • Android RecyclerView 之 列表宫格布局的切换
  • 妈妈的爱依然深沉
  • net.ResolveTCPAddr(“tcp6“, address)
  • mysql和mybatisPlus实现:datetime类型的字段范围查询
  • 学习笔记:用ROS接收rosbag发布的topic
  • LAMP架构介绍配置命令讲解
  • C语言之函数题
  • SpringBoot的四种handler类型
  • 基于KNN算法的鸢尾花种类预测
  • 英语-面试
  • 文件传输协议
  • Llama-2大模型本地部署研究与应用测试
  • 白嫖idea
  • PyCharm切换虚拟环境
  • 自动化运维工具-----Ansible入门详解
  • 一、Mycat2介绍与下载安装
  • 链表的介绍
  • 深度剖析:数据服务API的安全性与隐私保护
  • MediaPlayer音频与视频的播放介绍
  • 【Terraform学习】Terraform模块基础操作(Terraform模块)
  • 改进的KMeans 点云聚类算法 根据体元中的点数量计算点密度,并获取前K个点密度最大的体元作为初始聚类中心(附 matlab 代码)
  • php user.ini详解
  • 用 PHP 和 JavaScript 显示地球卫星照片
  • Ubantu安装mongodb,开启远程访问和认证