爬取豆瓣图书排行榜前十并使用图表的形式展示

本文介绍了使用Python中的requests模块爬取豆瓣图书排行榜前十名的方法,适合初学者了解爬虫基础。提供了获取Python学习资料的联系方式。

爬取豆瓣图书

最近在学习爬虫的基础使用,发现最好爬的网站就是豆瓣了,随随便便都是可以爬到数据。
下面就是使用Python中间的requests模块实现豆瓣图书排行榜的爬取:

import requests
from lxml import etree
import urllib3
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
}
url = 'https://book.douban.com/'
def get_url(url):
    dict_book = {}
    response = requests.get(url, verify=False).text
    response = etree.HTML(response)
    for i in range(0,10):
        ret = response.xpath('//*[@id="content"]/div/div[1]/div[4]/div[2]/ul/li['+ str(i+1)+']/div[2]/h4/a/text()')
        grade = response.xpath('//*[@id="content"]/div/div[1]/div[4]/div[2]/ul/li['+ str(i+1)+']/div[2]/p[1]/span[2]/text()')
        grade = ''.join(grade).strip()
        dict_book[''.join(ret)] = grade
    return dict_book
def show_date(dict_book):
    name = list(dict_book.keys())
    value = []
    for i in dict_book.values():
        i = float(i)
        value.append(i)
    print(name, value)
    plt.barh(range(10), value)
    plt.yticks(range(10), name)
    plt.xlim(0, 10)
    plt.xlabel('价格')
    plt.title('豆瓣图书评分')
    for x, y in enumerate(value):
        plt.text(y + 0.5, x - 0.1, '%s' % y)
    plt.show()
dict_book = get_url(url)
show_date(dict_book)

想要获取Python学习资料的小伙伴可以加QQ:728711576

Python爬虫爬取豆瓣图书进行可视化通常涉及以下几个步骤: 1. **安装库**:首先需要安装必要的库,如`requests`用于发送HTTP请求获取网页内容,`BeautifulSoup`或`lxml`处理HTML解析,以及数据可视化库如`matplotlib`、`seaborn`或`plotly`。 ```python pip install requests beautifulsoup4 matplotlib ``` 2. **发送GET请求**:通过`requests.get()`函数访问豆瓣图书页面,例如,豆瓣图书详情页URL加上书籍ID。 3. **解析HTML**:使用BeautifulSoup解析网页内容,找到包含所需信息的部分,比如书名、作者、评分等。 ```python import requests from bs4 import BeautifulSoup url = "https://book.douban.com/subject/<book_id>" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') ``` 4. **提取数据**:使用BeautifulSoup提供的方法查找元素,提取出你需要的数据。 5. **存储数据**:将数据保存到文件或数据库,以便后续分析。 6. **数据清洗与预处理**:有时需要处理缺失值、异常值,对文本数据进行标准化等。 7. **可视化**:利用Matplotlib或Seaborn绘制图表,展示图书的相关数据,比如书评数、评分分布、用户评论热词云等。 ```python import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # 将数据转换为DataFrame data_df = pd.DataFrame(..., columns=['标题', '作者', '评分']) # 绘制评分分布图 sns.histplot(data=data_df['评分']) plt.show() # 绘制关键词云 from wordcloud import WordCloud wordcloud = WordCloud().generate_from_frequencies(...) plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值