Python爬虫攻略:数据爬取与清洗实践
在当今互联网时代,数据是企业和个人不可或缺的重要资源,数据爬取成为越来越普遍的需求。Python拥有丰富的爬虫库,使得爬虫开发变得简单快捷。
本文将介绍Python爬虫基础知识、数据爬取与清洗实践,并以实例演示。
1、Python爬虫基础知识
爬虫是一种程序,它能够模拟浏览器行为,访问指定URL并获取数据。Python中常用的爬虫库有:requests、beautifulsoup4、selenium、pandas、numpy等。
requests库是Python中最常用的HTTP库,可以发送HTTP网络请求,获取网络数据,支持cookies、SSL、数据上传等功能。
beautifulsoup4库可以方便地从HTML网页中提取数据。使用beautifulsoup4库可以根据标签、属性、文本等条件来查找网页元素。
selenium库可以模仿浏览器行为,自动化控制浏览器进行网页抓取,支持多种浏览器。
pandas、numpy库是处理数据的常用库,可以对数据进行读取、清洗、分析、可视化等操作。
2、数据爬取实践
数据爬取是指从网络上获取数据的过程,下面以爬取豆瓣电影数据为例说明。
(1)导入爬虫库
首先需要导入requests和beautifulsoup4库:
import requests
from bs4 import BeautifulSoup
(2)发送HTTP请求
使用requests库发送HTTP请求,获取页面HTML代码:
#发送请求
url = 'https://movie.douban.com/top250'
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5)\
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
}
response = requests.get(url=url,headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
(3)解析HTML代码
使用beautifulsoup4库解析HTML代码,获取需要的信息:
movie_list = soup.find_all('div',class_='hd')
for movie in movie_list:
movie_name = movie.find_all('span', class_='title')[0].string
print(movie_name)
(4)保存数据
将获取的数据保存为Excel文件:
import pandas as pd
movie_names = []
movie_list = soup.find_all('div',class_='hd')
for movie in movie_list:
movie_name = movie.find_all('span', class_='title')[0].string
movie_names.append(movie_name)
df = pd.DataFrame({'电影名称':movie_names})
df.to_excel('douban_top250.xlsx')
3、数据清洗实践
数据清洗是指对原始数据进行加工处理,以满足需求和规范。
(1)导入库
首先需要导入pandas库:
import pandas as pd
(2)读取数据
读取Excel文件中的数据:
df = pd.read_excel('douban_top250.xlsx')
(3)清洗数据
对电影名称中的重复数据进行去重:
df.drop_duplicates(subset=['电影名称'],keep='first',inplace=True)
(4)保存数据
保存清洗后的数据:
df.to_excel('douban_top250_cleaned.xlsx')
结语
本文介绍了Python爬虫基础知识、数据爬取与清洗实践,并以爬取豆瓣电影数据为例进行演示。Python爬虫可以快速、简便地获取互联网上的数据,为企业和个人提供了更多的数据资源。