爬取豆瓣Top250图书数据
2023/6/13 18:53:08
本文主要是介绍爬取豆瓣Top250图书数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
爬取豆瓣Top250图书数据
项目的实现步骤
1.项目结构
2.获取网页数据
3.提取网页中的关键信息
4.保存数据
1.项目结构
2.获取网页数据
对应的网址为https://book.douban.com/top250
import requests from bs4 import BeautifulSoup """ 获取网页数据,解析数据,将相应的数据传出 """ def get_page(url): headers = { 'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) ' 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 ' 'Mobile Safari/537.36 Edg/114.0.1823.43' } resp=requests.get(url,headers=headers) soup=BeautifulSoup(resp.text,'html.parser') return soup
3.提取网页中的关键信息
获取传出的解析后的数据,获取对应的图片,书名,作者,价格,评价,简介
from geturlcocument.get_document import get_page import re # 初始数据 pictures=[] names=[] authors=[] prices=[] scores=[] sums=[] def get_single(): # 网址地址 urls = [f"https://book.douban.com/top250?start={num}" for num in range(0,250,25)] for url in urls: # 获取对应的网页文本 text = get_page.get_page(url) # 所有数据的集合 all_tr = text.find_all(name="tr", attrs={"class": "item"}) # 查找每个单项 for tr in all_tr: # 数据类型:图片,书名,作者,价格,评分,简介 # 图片 picture = tr.find(name="img") picture = picture.get('src') # print(picture) # 书名 div = tr.find(name='div', attrs={'class': 'pl2'}) name = div.find('a').text name = re.sub(r'\s+', '', name) # 作者 author = tr.find(name='p', attrs={'class': 'pl'}).text author = author.split('/')[0] # 价格 price = author.split('/')[-1] price = re.sub(r'元', '', price) # 评分 score = tr.find(name='span', attrs={'class': 'rating_nums'}).text try: sum = tr.find(name='span', attrs={'class': 'inq'}).text except AttributeError: sum = '' pictures.append(picture) names.append(name) authors.append(author) prices.append(price) scores.append(score) sums.append(sum) data = { "picture": pictures, "name": names, "author": authors, "price": prices, "score": scores, "sum": sums } return data
将获取的数据存入到字典中,将数据传出,使用re库对相应的数据进行处理,运用异常检错
4.保存数据
获取传出的字典类型的数据,将数据存入到pandas的DataFrame类型中
from geturlcocument.get_single_docuemnt import get_single import pandas as pd # 获取字典类型的数据 data=get_single.get_single() # 用pandas的DataFrame类型存储数据 df=pd.DataFrame(data) df.to_csv('./books.csv',encoding='utf-8') print('ending of data')
该项目完成!!!
这篇关于爬取豆瓣Top250图书数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行