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

网页一键建站wordpress会员权限

网页一键建站,wordpress会员权限,哪个网站做美食视频软件,国外虚拟物品交易网站导语 豆瓣是一个提供图书、电影、音乐等文化产品的社区平台#xff0c;用户可以在上面发表自己的评价和评论#xff0c;形成一个丰富的文化数据库。本文将介绍如何使用爬虫技术获取豆瓣图书的评分数据#xff0c;并进行可视化分析#xff0c;探索不同类型、不同年代、不同… 导语 豆瓣是一个提供图书、电影、音乐等文化产品的社区平台用户可以在上面发表自己的评价和评论形成一个丰富的文化数据库。本文将介绍如何使用爬虫技术获取豆瓣图书的评分数据并进行可视化分析探索不同类型、不同年代、不同地区的图书的评分特征和规律。 概述 本文的主要步骤如下 使用scrapy框架编写爬虫程序从豆瓣图书网站抓取图书的基本信息和评分数据保存为csv格式的文件。使用亿牛云爬虫代理服务提高爬虫效率和稳定性避免被豆瓣网站屏蔽或封禁。使用pandas库对爬取的数据进行清洗和处理提取出需要的字段和特征。使用matplotlib库对处理后的数据进行可视化分析绘制各种类型的图表展示不同维度的评分分布和关系。 正文 爬虫程序 首先我们需要编写一个爬虫程序从豆瓣图书网站抓取图书的基本信息和评分数据。我们使用scrapy框架来实现这个功能scrapy是一个强大而灵活的爬虫框架可以方便地定义爬虫规则和处理数据。我们需要定义一个Spider类继承自scrapy.Spider类并重写以下方法 start_requests该方法返回一个可迭代对象包含了爬虫开始时要访问的请求对象。我们可以从豆瓣图书首页开始获取所有分类的链接并构造请求对象。parse该方法负责处理start_requests返回的请求对象的响应并解析出需要的数据或者进一步的请求。我们可以使用scrapy自带的选择器或者BeautifulSoup等第三方库来解析HTML文档提取出图书列表页的链接并构造请求对象。parse_book该方法负责处理parse返回的请求对象的响应并解析出图书详情页的数据。我们可以使用同样的方式来提取出图书的基本信息和评分数据并将其保存为字典格式。close该方法在爬虫结束时被调用我们可以在这里将抓取到的数据保存为csv格式的文件。 为了提高爬虫效率和稳定性我们还需要使用亿牛云爬虫代理服务该服务提供了大量高质量的代理IP地址可以帮助我们避免被豆瓣网站屏蔽或封禁。我们只需要在settings.py文件中设置代理服务器的域名、端口、用户名和密码以及启用中间件HttpProxyMiddleware即可。 首先配置爬虫代理你可以按照以下步骤在Scrapy项目的settings.py文件中进行配置 确保已经安装了Scrapy以及相关依赖。然后打开你的Scrapy项目的settings.py文件并添加以下配置 # 启用HttpProxyMiddleware中间件 DOWNLOADER_MIDDLEWARES {scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware: 1, }# 设置亿牛云 爬虫代理服务器的配置 HTTPPROXY_AUTH_ENCODING utf-8 # 编码格式# 亿牛云 爬虫代理服务器的域名、端口、用户名和密码 HTTPPROXY_HOST www.16yun.cn HTTPPROXY_PORT 12345 HTTPPROXY_USER 16YUN HTTPPROXY_PASS 16IP 以下是爬虫程序的代码 # -*- coding: utf-8 -*- import scrapy import csvclass DoubanSpider(scrapy.Spider):name doubanallowed_domains [book.douban.com]start_urls [https://book.douban.com/]# 定义保存数据的列表data []def start_requests(self):# 从豆瓣图书首页开始yield scrapy.Request(urlself.start_urls[0], callbackself.parse)def parse(self, response):# 解析首页获取所有分类的链接categories response.xpath(//div[classarticle]/div[classindent]/table//a)for category in categories:# 构造分类页面的请求对象url category.xpath(./href).get()yield scrapy.Request(urlurl, callbackself.parse_book)def parse_book(self, response):# 解析分类页面获取图书列表books response.xpath(//li[classsubject-item])for book in books:# 构造图书详情页的请求对象url book.xpath(./div[classinfo]/h2/a/href).get()yield scrapy.Request(urlurl, callbackself.parse_detail)# 获取下一页的链接如果存在则继续爬取next_page response.xpath(//span[classnext]/a/href)if next_page:url next_page.get()yield scrapy.Request(urlurl, callbackself.parse_book)def parse_detail(self, response):# 解析图书详情页获取图书的基本信息和评分数据item {}item[title] response.xpath(//h1/span/text()).get() # 标题item[author] response.xpath(//span[contains(text(),作者)]/following-sibling::a/text()).get() # 作者item[publisher] response.xpath(//span[contains(text(),出版社)]/following-sibling::text()).get() # 出版社item[pub_date] response.xpath(//span[contains(text(),出版年)]/following-sibling::text()).get() # 出版年item[price] response.xpath(//span[contains(text(),定价)]/following-sibling::text()).get() # 定价item[rating] response.xpath(//strong/text()).get() # 评分item[rating_num] response.xpath(//a[contains(href,rating)]/span/text()).get() # 评分人数item[tags] response.xpath(//div[iddb-tags-section]/div[classindent]/span/a/text()).getall() # 标签# 将数据添加到列表中self.data.append(item)def close(self, spider, reason):# 爬虫结束时将数据保存为csv格式的文件with open(douban_books.csv, w, encodingutf-8, newline) as f:writer csv.DictWriter(f, fieldnamesself.data[0].keys())writer.writeheader()writer.writerows(self.data)数据清洗和处理 接下来我们需要对爬取的数据进行清洗和处理提取出需要的字段和特征。我们使用pandas库来实现这个功能pandas是一个强大而灵活的数据分析和处理库可以方便地读取、操作和转换数据。我们需要做以下几个步骤 读取csv文件将数据转换为DataFrame对象。去除空值和重复值保证数据的完整性和唯一性。对部分字段进行类型转换如将评分和评分人数转换为数值类型将出版年转换为日期类型。对部分字段进行拆分或合并如将作者拆分为中文作者和外文作者将标签合并为一个字符串。对部分字段进行分组或分类如根据评分区间划分为高分、中等、低分三类根据出版年划分为不同的年代。 以下是数据清洗和处理的代码 # -*- coding: utf-8 -*- import pandas as pd# 读取csv文件将数据转换为DataFrame对象 df pd.read_csv(douban_books.csv)# 去除空值和重复值保证数据的完整性和唯一性 df.dropna(inplaceTrue) df.drop_duplicates(inplaceTrue)# 对部分字段进行类型转换如将评分和评分人数转换为数值类型将出版年转换为日期类型 df[rating] pd.to_numeric(df[rating]) df[rating_num] pd.to_numeric(df[rating_num]) df[pub_date] pd.to_datetime(df[pub_date])# 对部分字段进行拆分或合并如将作者拆分为中文作者和外文作者将标签合并为一个字符串 df[‘tags’] df[‘tags’].apply(lambda x: ‘,’.join(x))# 对部分字段进行分组或分类如根据评分区间划分为高分、中等、低分三类根据出版年划分为不同的年代 df[‘rating_level’] pd.cut(df[‘rating’], bins[0, 7, 8.5, 10], labels[‘低分’, ‘中等’, ‘高分’]) df[‘pub_year’] df[‘pub_date’].dt.year df[‘pub_decade’] (df[‘pub_year’] // 10) * 10 #数据清洗和处理完成保存为新的csv文件 df.to_csv(‘douban_books_cleaned.csv’, indexFalse) 数据可视化分析 最后我们需要对处理后的数据进行可视化分析绘制各种类型的图表展示不同维度的评分分布和关系。我们使用matplotlib库来实现这个功能matplotlib是一个强大而灵活的数据可视化库可以方便地创建各种风格和格式的图表。我们需要做以下几个步骤 导入matplotlib库并设置中文显示和风格。读取清洗后的csv文件将数据转换为DataFrame对象。使用matplotlib的子模块pyplot来绘制各种图表如直方图、饼图、箱线图、散点图等。使用matplotlib的子模块axes来调整图表的标题、标签、刻度、图例等属性。使用matplotlib的子模块figure来保存图表为图片文件。 以下是数据可视化分析的代码 # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import pandas as pd# 导入matplotlib库并设置中文显示和风格 plt.rcParams[font.sans-serif] [SimHei] # 设置中文显示 plt.rcParams[axes.unicode_minus] False # 设置负号显示 plt.style.use(ggplot) # 设置风格# 读取清洗后的csv文件将数据转换为DataFrame对象 df pd.read_csv(douban_books_cleaned.csv)# 绘制直方图显示不同评分区间的图书数量 plt.figure(figsize(8, 6)) # 设置画布大小 plt.hist(df[rating], bins20, colorsteelblue, edgecolork) # 绘制直方图 plt.xlabel(评分) # 设置x轴标签 plt.ylabel(数量) # 设置y轴标签 plt.title(豆瓣图书评分直方图) # 设置标题 plt.savefig(rating_hist.png) # 保存图片# 绘制饼图显示不同评分等级的图书占比 plt.figure(figsize(8, 6)) # 设置画布大小 rating_level_counts df[rating_level].value_counts() # 计算不同评分等级的图书数量 plt.pie(rating_level_counts, labelsrating_level_counts.index, autopct%.2f%%, colors[limegreen, gold, tomato]) # 绘制饼图 plt.title(豆瓣图书评分等级饼图) # 设置标题 plt.savefig(rating_level_pie.png) # 保存图片# 绘制箱线图显示不同年代的图书评分分布 plt.figure(figsize(8, 6)) # 设置画布大小 decades df[pub_decade].unique() # 获取不同年代的列表 decades.sort() # 对年代进行排序 ratings_by_decade [df[df[pub_decade] decade][rating] for decade in decades] # 获取每个年代对应的评分列表 plt.boxplot(ratings_by_decade, labelsdecades) # 绘制箱线图 plt.xlabel(年代) # 设置x轴标签 plt.ylabel(评分) # 设置y轴标签 plt.title(豆瓣图书不同年代评分箱线图) # 设置标题 plt.savefig(rating_by_decade_box.png) # 保存图片# 绘制散点图显示评分和评分人数的关系 plt.figure(figsize(8, 6)) # 设置画布大小 plt.scatter(df[rating], df[rating_num], colorsteelblue, alpha0.5) # 绘制散点图 plt.xlabel(评分) # 设置x轴标签 plt.ylabel(评分人数) # 设置y轴标签 plt.title(豆瓣图书评分和评分人数散点图) # 设置标题 plt.savefig(rating_num_scatter.png) # 保存图片结语 本文介绍了如何使用爬虫技术获取豆瓣图书的评分数据并进行可视化分析探索不同类型、不同年代、不同地区的图书的评分特征和规律。通过本文我们可以学习到以下几点 如何使用scrapy框架编写爬虫程序从豆瓣图书网站抓取图书的基本信息和评分数据保存为csv格式的文件。如何使用亿牛云爬虫代理服务提高爬虫效率和稳定性避免被豆瓣网站屏蔽或封禁。如何使用pandas库对爬取的数据进行清洗和处理提取出需要的字段和特征。如何使用matplotlib库对处理后的数据进行可视化分析绘制各种类型的图表展示不同维度的评分分布和关系。 希望本文能够对你有所帮助如果你对爬虫技术或者数据可视化有兴趣可以继续深入学习和探索。谢谢你的阅读
http://www.pierceye.com/news/557374/

相关文章:

  • 河南制作网站电话免费的网站登录模板
  • 鹰潭做网站的建筑工程公司取名
  • 网站建设与运营实验开发一个网站的成本
  • 自考网站建设与管理资料郑州高端网站建设哪家好
  • 网站设计开发维护设计云网站
  • 北京工商局网站怎么做增资h5个人页面制作
  • 北京好的网站建设12个 网站模板 管理办法
  • vs2017 如何做网站最近一周新闻热点大事件
  • wordpress建站欣赏解释网站为什么这样做
  • 网站建设模板登录界面七牛wordpress插件
  • 手机 网站制作上饶企业网站建设
  • 网站建设需要知道什么软件深达网站制作深圳公司
  • 怎么做监控网站Wordpress页面函数
  • 梁平网站建设百度搜索排名优化哪家好
  • 芜湖网站建设芜湖狼道cad精品课网站建设
  • qq空间认证的网站后台根目录seo和sem是什么意思
  • 中国建设集团门户网站装修公司做网站
  • 东莞seo建站公司哪家好怎么把网站推广出去
  • 网站建设什么时候好豆瓣wordpress
  • 动漫网站设计报告最好的wordpress商城主题
  • 陕西餐饮加盟网站建设如何做一个网站代码
  • 合浦住房和城乡规划建设局网站网页设计培训机构学什么好
  • 做网站需要注意的地方模板ppt
  • 自己建立公司网站自助建站系统
  • 淅川微网站开发wordpress 侧边收起
  • 网站建设企业哪家好乐清站在那儿
  • 网站建设公司人员配置做网站衡水
  • 成都网站建设939seo搜索优化软件
  • 企业网站建设哪家好seo检测
  • 网站建设的案例教程视频教程兴平市住房和城乡建设局门户网站