您的当前位置:首页 > 经济 > 正文

爬取豆瓣Top250图书数据

  • 2023-06-13 17:31:51 来源:博客园


【资料图】

爬取豆瓣Top250图书数据

项目的实现步骤1.项目结构2.获取网页数据3.提取网页中的关键信息4.保存数据1.项目结构

2.获取网页数据对应的网址为https://book.douban.com/top250

import requestsfrom 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_pageimport 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_singleimport 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图书数据

爬取豆瓣Top250图书数据项目的实现步骤1 项目结构2 获取网页数据3 提

成都启梦殿教育:关于透视的知识点和使用技巧有哪些呢?|每日播报

  在绘画中,透视是一个必须要克服的难题。是每一个优秀作品中都必须

大宗交易:特力A成交1164.8万元,折价6.52%(06-13) 即时看

2023年6月13日,特力A发生1笔大宗交易,总成交70万股,成交金额1164 8

世界新资讯:凝聚多方合力 建设和谐乡村(建设更高水平的平安中国)

核心阅读为推动和谐乡村建设,多元化解矛盾纠纷,辽宁省昌图县建成“一

每日动态!道县:养蚕托起致富梦 乡村振兴新“丝路”

红网时刻新闻6月13日讯(记者姜姿通讯员蒋克青刘健)6月13日,在永州市

猜您喜欢

【版权及免责声明】凡注明"转载来源"的作品,均转载自其它媒体,转载目的在于传递更多的信息,并不代表本网赞同其观点和对其真实性负责。亚洲时报网倡导尊重与保护知识产权,如发现本站文章存在内容、版权或其它问题,烦请联系。 联系方式:8 86 239 5@qq.com,我们将及时沟通与处理。

关注