基于python爬虫数据处理(详解)

yizhihongxing

基于Python爬虫数据处理

本攻略介绍如何使用Python爬虫来获取数据,并使用Python进行数据处理和分析。

一、爬虫数据获取

Python中有很多爬虫库可供选择,本攻略使用的是requestsBeautifulSoup库。requests用于获取网页源代码,而BeautifulSoup则用于解析源代码,提取需要的数据。

以下是一个简单的示例代码,获取豆瓣电影排行榜前250的电影名称、评分和链接:

import requests
from bs4 import BeautifulSoup

url = 'https://movie.douban.com/top250'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

movies = []

for item in soup.select('.item'):
    title = item.select_one('.title').text.strip()
    rating = item.select_one('.rating_num').text.strip()
    href = item.select_one('.hd a')['href']
    movies.append({'title': title, 'rating': rating, 'href': href})

print(movies)

以上代码中,先使用requests发起请求获取网页源代码,然后使用BeautifulSoup对源代码进行解析,提取出前250部电影的名称、评分和链接。最后将获取到的电影信息以字典形式存入列表中,并打印输出。

二、数据处理

完成了数据的获取,接下来就是如何对数据进行处理和分析。Python中有很多数据处理库可供选择,本攻略使用的是pandas库。pandas是一个高效、强大、灵活的数据分析工具,可以使数据的清洗、处理和分析变得简单而快速。

以下是一个简单的示例代码,读取电影信息的列表数据,然后使用pandas进行数据清洗和分析:

import pandas as pd

df = pd.DataFrame(movies)
df['rating'] = df['rating'].astype(float)

# 计算电影评分的平均值、中位数、最大值、最小值
mean_rating = df['rating'].mean()
median_rating = df['rating'].median()
max_rating = df['rating'].max()
min_rating = df['rating'].min()

# 根据评分排序,获取评分前20的电影的名称和评分
top_movies = df.sort_values(by='rating', ascending=False).head(20)
top_movies = top_movies[['title', 'rating']]
print(top_movies)

以上代码中,先将电影信息的列表数据转换为DataFrame对象,然后将rating列的数据类型转换为浮点数类型。接下来,使用pandas的一些函数求出电影评分的平均值、中位数、最大值、最小值,并按照评分排序,获取评分前20的电影的名称和评分。

三、示例说明

以下是另外两个示例,分别是获取今日头条的新闻分类、标题和链接,以及统计豆瓣电影排行榜前250的电影的各个评分分别占比:

1. 获取今日头条的新闻分类、标题和链接

url = 'https://www.toutiao.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

news = []

for item in soup.select('.feed-tab-item'):
    category = item.select_one('.title').text.strip()
    title = item.select_one('.title-box .link').text.strip()
    href = item.select_one('.title-box .link')['href']
    news.append({'category': category, 'title': title, 'href': href})

print(news)

以上代码中,先使用requests发起请求获取今日头条的网页源代码,然后使用BeautifulSoup对源代码进行解析,提取出新闻分类、标题和链接。最后将获取到的新闻信息以字典形式存入列表中,并打印输出。

2. 统计豆瓣电影排行榜前250的电影的各个评分分别占比

import matplotlib.pyplot as plt

df = pd.DataFrame(movies)
df['rating'] = df['rating'].astype(float)

# 统计评分的分布情况
bins = [x/10 for x in range(1, 11)]
counts = df.groupby(pd.cut(df['rating'], bins)).size()
counts = counts/counts.sum()*100

# 绘制评分分布的饼图
plt.pie(counts, labels=counts.index.map(lambda x: '{}-{}'.format(x.left, x.right)), autopct='%.2f%%')
plt.show()

以上代码中,先将获取到的电影信息的列表数据转换为DataFrame对象,并将rating列的数据类型转换为浮点数类型。接下来,使用pandasgroupby函数按照评分区间进行分组,统计各个评分区间的电影数量,并计算各个评分区间的电影数量占总数的比例。最后,使用matplotlib绘制评分分布的饼图。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于python爬虫数据处理(详解) - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • pycharm 如何缩进和SQL乱码及SQL包含变量

    下面为你详细讲解 “PyCharm 如何缩进和 SQL 乱码及 SQL 包含变量” 的完整攻略。 如何缩进 基本操作 在 PyCharm 编辑器中,我们可以使用 Tab 键来实现缩进,使用 Shift + Tab 来实现反向缩进(即减少缩进)。此外,我们可以在 Editor 选项卡下的 Code Style 子选项中设置我们代码缩进的具体规则,例如使用空格还…

    python 2023年5月20日
    00
  • 浅谈python中常用的excel模块库

    下面是针对“浅谈Python中常用的Excel模块库”的实例教程。 一、常用的Excel模块库简介 Excel是一个非常常用的数据处理工具,对于数据分析和处理有着非常重要的作用。为了更好地使用Python对Excel进行数据处理,我们常常需要使用到Excel模块库。下面是Python中常用的Excel模块库: openpyxl:一个专门为Excel 2010…

    python 2023年5月13日
    00
  • 正则表达式从原理到实战全面学习小结

    正则表达式从原理到实战全面学习小结 正则表达式是一种用于匹配字符串的工具,它可以用来检查一个字符串是否符合某种模式。在本文中,我们将从原理到实战全面学习正则表达式。 正则表达式的基本语法 正则表达式的基本语法包括以下几个部分: 字符:表示匹配该字符本身。 字符集:用方括号[]表示,表示匹配方括号中的任意一个字符。 元字符:表示特殊含义的字符,例如”.”表示匹…

    python 2023年5月14日
    00
  • 利用Python爬取可用的代理IP

    利用Python爬取可用的代理IP是一个非常有用的应用场景,可以帮助用户快速获取可用的代理IP,提高爬虫效率和准确性。本攻略将介绍Python爬取可用的代理IP的完整攻略,包括数据获取、数据处理、数据存储和示例。 步骤1:获取数据 在Python中,我们可以使用requests库获取网页数据。以下是获取代理IP页面的示例: import requests u…

    python 2023年5月15日
    00
  • Python编程二分法实现冒泡算法+快速排序代码示例

    Python编程二分法实现冒泡算法+快速排序代码示例 本文将详细介绍如何使用Python编程实现二分法、冒泡算法和速排序算法,并提供两个示例说明。 二分法 二分法是一种常用的查找算法,它的基本想是将有序数组分成两部分,然后判断目标值在哪一部分中,从而缩小查找范围。下面是使用Python实现二分法的代码示例: def binary_search(arr, ta…

    python 2023年5月14日
    00
  • Python实现的Google IP 可用性检测脚本

    介绍 Google的IP(Internet Protocol)可用性检测是一个重要的任务,有助于确保网络连接的稳定性。Python是一种流行的编程语言,可以用于实现Google IP 可用性检测脚本。本文将详细介绍使用Python实现Google IP 可用性检测脚本的完整攻略,以及两个示例说明。 步骤 安装Python以及第三方库 首先需要安装Python…

    python 2023年6月3日
    00
  • 关于Python字符串显示u…的解决方式

    关于Python字符串显示u…的问题,其实是与Python的编码方式有关的。在Python 2版本中,默认使用ASCII编码格式,而在Python 3版本中则默认使用Unicode编码格式。因此,在Python 2版本中,如果出现u…的情况,则表示该字符串是Unicode编码格式,需要进行转换才能正确地进行处理。 下面,我将分享两种解决该问题的方式:…

    python 2023年5月20日
    00
  • 关于Scrapy爬虫项目运行和调试的小技巧(上篇)

    扫除运行Scrapy爬虫程序的bug之后,现在便可以开始进行编写爬虫逻辑了。在正式开始爬虫编写之前,在这里介绍四种小技巧,可以方便我们操纵和调试爬虫。 一、建立main.py文件,直接在Pycharm下进行调试 很多时候我们在使用Scrapy爬虫框架的时候,如果想运行Scrapy爬虫项目的话,一般都会想着去命令行中直接执行命令“scrapy crawl cr…

    2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部