爬虫豆瓣读书top250,保存为本地csv文件

目的

将豆瓣读书top250排名保存到本地excel,包括书名,作者,评分,评论数,简评,网址。用到了requests,res,BeautifulSoup,csv库。
豆瓣读书top250网址:https://book.douban.com/top250

整体思路

先上代码,Pycharm运行

#coding=gbk
import requests   #导入requests库,用于获取网页数据
import re         #导入re库,用于正则表达式筛选数据
from bs4 import BeautifulSoup  #导入库,用于解析网页
import csv        #导入库,用于创建csv文件并写入数据
import xlsxwriterdef get_all_url():      #定义获取所有网址的函数urls = []for i in range(0, 250, 25):url_1 = 'https://book.douban.com/top250?start={}'.format(i)urls.append(url_1)return urlsdef get_book_info(url_2):   #定义函数,通过网址参数获取整页所需数据,并将其存入csv文件global ids              #定义序号变量header = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like\ Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)  Version/13.0\ .3 Mobile/15E148 Safari/604.1'}res = requests.get(url_2, headers=header)res.encoding = 'utf-8'soup = BeautifulSoup(res.text, 'lxml')for i in range(25):data_name = soup.find_all('div', class_='pl2')[i]names = data_name.a.get('title')href = data_name.a.get('href')data_author = soup.find_all('p', class_='pl')[i]authors = data_author.get_text().split('/')[0]data_score = soup.find_all('span', class_='rating_nums')[i]scores = data_score.get_text()data_msg = soup.find_all('span', class_='pl')[i].get_text()msgs = re.findall('\d+', data_msg)[0]data_com = soup.find_all('td', valign='top')[2 * i + 1].find('span', class_='inq')if data_com is not None:comments = data_com.get_text()else:comments = '无'ids += 1book_info.writerow((ids, names, authors, scores, msgs, comments, href,))if __name__ == '__main__':   #主函数try:workbook = xlsxwriter.Workbook('豆瓣读书TOP250.csv')worksheet = workbook.add_worksheet('SHOW')with open('f:/python_document/豆瓣读书TOP250.csv', 'w', newline='', encoding='utf-8-sig') as file:book_info = csv.writer(file)book_info.writerow(('序号', '书名', '作者', '评分', '评论数', '简评', '网址'))url_list = get_all_url()ids = 0for url in url_list:get_book_info(url)except Exception as e:  #异常时执行print('Error:', e)print('读取完成!')

一:定义获取所有网址的函数(前250个)

def get_all_url():      #定义获取所有网址的函数urls = []for i in range(0, 250, 25):url_1 = 'https://book.douban.com/top250?start={}'.format(i)urls.append(url_1)return urls

分析网址
打开豆瓣读书网址:https://book.douban.com/top250
第一页:https://book.douban.com/top250
第二页:https://book.douban.com/top250?start=25
第三页:https://book.douban.com/top250?start=50

第十页:https://book.douban.com/top250?start=225
把第一页的网址改为:https://book.douban.com/top250?start=0
找到规律,通过修改最后的数字改变网址,先定义一个函数获取所有网址,并存入列表。

二:定义函数,通过网址参数获取整页所需数据,并将其存入csv文件

def get_book_info(url_2):   #定义函数,通过网址参数获取整页所需数据,并将其存入csv文件global ids              #定义序号变量header = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like\ Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)  Version/13.0\ .3 Mobile/15E148 Safari/604.1'}res = requests.get(url_2, headers=header)res.encoding = 'utf-8'soup = BeautifulSoup(res.text, 'lxml')for i in range(25):data_name = soup.find_all('div', class_='pl2')[i]names = data_name.a.get('title')href = data_name.a.get('href')data_author = soup.find_all('p', class_='pl')[i]authors = data_author.get_text().split('/')[0]data_score = soup.find_all('span', class_='rating_nums')[i]scores = data_score.get_text()data_msg = soup.find_all('span', class_='pl')[i].get_text()msgs = re.findall('\d+', data_msg)[0]data_com = soup.find_all('td', valign='top')[2 * i + 1].find('span', class_='inq')if data_com is not None:comments = data_com.get_text()else:comments = '无'ids += 1book_info.writerow((ids, names, authors, scores, msgs, comments, href,))

网站header获取:谷歌浏览器(Ctrl+Shift+j)
属性获取:书名,作者,评分,评论数,简评,网址
相应的信息左键–检查
注意标签

原文链接:https://blog.csdn.net/m0_46426889/article/details/104754257?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase

爬虫豆瓣读书top250,保存为本地csv文件相关推荐

  1. 爬虫豆瓣读书top250,保存为本地csv文件,可用excel查看(具体步骤和容易遇到的坑)

    1.目的 将豆瓣读书top250排名保存到本地excel,包括书名,作者,评分,评论数,简评,网址.用到了requests,res,BeautifulSoup,csv库. 2.分析网址 打开豆瓣读书网 ...

  2. python爬虫豆瓣读书top250+数据清洗+数据库+Java后端开发+Echarts数据可视化(一)

    由于刚上完了商业智能实训的课程,根据老师的要求我们做了一个完整的项目. 1. 项目要求与内容 项目具体要求:利用python爬取数据并进行清洗和预处理,将清洗后的数据存到数据库中,后端利用Java或是 ...

  3. python爬虫豆瓣读书top250+数据清洗+数据库+Java后端开发+Echarts数据可视化(二)

    之前的博客已经写了python爬取豆瓣读书top250的相关信息,接下来继续看如何清洗数据. 如果有没看懂的或是不了解上一部分说的是什么内容的,请看https://blog.csdn.net/qq_4 ...

  4. python爬虫豆瓣读书top250+数据清洗+数据库+Java后端开发+Echarts数据可视化(四)

    之前的博客已经写了python爬取豆瓣读书top250的相关信息和清洗数据.将数据导入数据库并创建相应的数据表,以及进行项目准备工作,接下来开始正式编写后台代码. 如果有没看懂的或是不了解上一部分说的 ...

  5. Python爬虫实战之一 - 基于Requests爬取拉勾网招聘信息,并保存至本地csv文件

    Python爬虫实战之二 - 基于Requests抓取拉勾网招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于小白,本 ...

  6. 爬取豆瓣音乐TOP250数据保存到csv文件和xls文件

    爬取的目标网址:https://music.douban.com/top250 利用lxml库,获取前10页的信息,需要爬取的信息包括歌曲名.表演者.流派.发行时间.评分和评论人数,把这些信息存到cs ...

  7. [爬虫系列(二)]爬取豆瓣读书Top250,并保存每本书

    这里我们要爬起豆瓣读书Top250,并保存每本书的书名,信息,简要介绍和作者信息.  这里,仍然分为三步:  1.url分析  2.数据分析  3.爬取数据 1.url分析 豆瓣读书Top250的ur ...

  8. Java网络爬虫--一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库

    一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库 目录 一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库 第一步:创建项目,搭建项目结构 p ...

  9. Requests爬虫实践:豆瓣读书Top250数据

    Requests爬虫实践:豆瓣读书Top250数据 本次的实践项目是爬取豆瓣读书Top250的书籍名称和网页地址 参考书籍:<Python网络爬虫从入门到实践> 书中爬的是电影数据,自己想 ...

最新文章

  1. 为什么 学汽修 java_这七个优势 告诉你为什么要学汽修
  2. 截取全部数值字符并将其转化为数值类型
  3. suse linux如何重置密码忘记,SUSE Linux忘记root密码的处理办法
  4. 如何在Linux上部署一个简单的Django项目
  5. 测试linux系统的程序员,日常测试Linux命令
  6. Redis: Redis支持五种数据类型
  7. Gene Ontology (GO) 简介
  8. 休宁天气预报软件测试,【休宁天气预报】休宁今天天气预报 - 天气史
  9. c c++ 实现代理服务器
  10. 小红书后台开发岗面试经历复盘
  11. 银行,金融行业的清分,结算,清算,核算到底是什么含义? 现金需要搬运么?
  12. DOM初探(17)——查看元素的尺寸与位置
  13. Jenkins首次安装选择推荐插件时出现“: No such plugin: cloudbees-folder” 解决方案
  14. 量化进阶——如何突破期货交易难点
  15. 一招解决bat文件执行时cmd命令窗口闪退问题
  16. 毕业设计-基于微信小程序的临沂旅游应用系统
  17. linux joe编辑器,Linux joe命令
  18. Oracle中有dateadd吗,oracle dateadd的函数有哪些?
  19. 如何在不停机的情况下在Django中创建索引
  20. 爬虫入门之最好大学网--专项学科全国排名爬虫

热门文章

  1. 企业级远程桌面,需要考虑哪些核心因素?
  2. Recovery 简介
  3. 18.10.01模拟赛总结
  4. vs 2010下载地址分享
  5. Python开发AI
  6. 携号转网倒计时!中国电信上线“良心”套餐,网友:值得办理
  7. 将Word文档转换为PDF文件的步骤和技巧
  8. 非root用户 linux 安装pip3
  9. Window PowerShell安装vim
  10. Java二叉树的镜像