网站首页 > 技术文章 正文
对于数据分析师来说,数据获取通常有两种方式,一种是直接从系统本地获取数据,另一种是爬取网页上的数据,爬虫从网页爬取数据需要几步?总结下来,Python爬取网页数据需要发起请求、获取响应内容、解析数据、保存数据共计4步。
本文使用Python爬取去哪儿网景点评论数据共计100条数据,数据爬取后使用Tableau Public软件进行可视化分析,从数据获取,到数据清洗,最后数据可视化进行全流程数据分析,下面一起来学习。
示例工具:anconda3.7
本文讲解内容:数据获取、数据可视化
适用范围:网页数据获取及评论分析
网页数据爬取
Python爬取网页数据需要发起请求、获取响应内容、解析数据、保存数据共计4步,懂的数据爬取的原理后,进行数据爬取。
1、发起请求
以去哪儿旅行网站为例,爬取网页数据,首先发送请求。
import requests
u='https://travel.qunar.com/p-cs300100-xian-jingdian'#爬取网址
response=requests.get(u)
print('状态码:{}'.format(response.status_code))
if response.status_code != 200:
pass
else:
print("服务器连接正常")
这里返回状态码为200,说明服务器连接正常,可以进行数据爬取。
2、获取响应内容
服务器连接正常后,直接打印返回内容,这里返回整个网页html。
print(response.text)
3、解析数据
网页结构由复杂的html语言构成,这里借助BeautifulSoup库进行解析。
from bs4 import BeautifulSoup
ri = requests.get(url=u)
soupi=BeautifulSoup(ri.text,'lxml')#解析网址
ul=soupi.find('ul',class_='list_item clrfix')
lis = ul.find_all('li')
lis
对于特定的标签进行定位,输出text。
print(soupi.h1.text)#标签定位,输出text
lis=ul.find_all('li')
print(lis[0].text)
建立一个字典,解析目标标签内容。
li1=lis[0]
dic={}
dic['景点名称']=li1.find('span',class_="cn_tit").text
dic['攻略提到数量']=li1.find('div',class_="strategy_sum").text
dic['评论数量']=li1.find('div',class_="comment_sum").text
dic['lng']=li['data-lng']
dic['lat']=li['data-lat']
dic
使用for循环解析标签内容。
import requests
from bs4 import BeautifulSoup
u1='https://travel.qunar.com/p-cs300100-xian-jingdian'
ri=requests.get(url= u1)
soupi=BeautifulSoup(ri.text,'lxml')#解析网址
ul=soupi.find('ul',class_='list_item clrfix')
lis=ul.find_all('li')
for li in lis:
dic={}
dic['景点名称']=li.find('span',class_="cn_tit").text
dic['攻略提到数量']=li.find('div',class_="strategy_sum").text
dic['评论数量']=li.find('div',class_="comment_sum").text
dic['lng']=li['data-lng']
dic['lat']=li['data-lat']
print(dic)
根据翻页规律设置翻页数,这里设置一个列表,用来循环爬取前十页数据。
#根据翻页规律,设置翻页数
urllst=[]
for i in range(11):
urllst.append('https://travel.qunar.com/p-cs300100-xian-jingdian'+str('-1-')+str(i))
urllst=urllst[2:11]
urllst.append('https://travel.qunar.com/p-cs300100-xian-jingdian')
urllst
4、保存数据
新建一个空的数据框,用于保存数据。
import pandas as pd
dic = pd.DataFrame(columns=["景点名称", "攻略提到数量", "评论数量", "lng", "lat"])
dic
在空的数据框中保存第一条数据,并且使用for循环,依次爬取其余页面的数据。
n=0
dic.loc[n, '景点名称'] = li.find('span', class_="cn_tit").text
dic.loc[n, '攻略提到数量'] = li.find('div', class_="strategy_sum").text
dic.loc[n, '评论数量'] = li.find('div', class_="comment_sum").text
dic.loc[n, 'lng'] = li['data-lng']
dic.loc[n, 'lat'] = li['data-lat']
dic
- 上一篇: Python自动化必会技能-Excel文件读取
- 下一篇: 用Python进行数据分析,让你一看就会
猜你喜欢
- 2025-03-25 Python数据分析之爬虫第三练:怎么把爬取到的数据存入数据库
- 2025-03-25 利用python进行数据分析,PDF文档给你答案
- 2025-03-25 超有趣!用 Python 爬取抖音热门视频数据,探索爆款密码
- 2025-03-25 用Python进行数据分析,让你一看就会
- 2025-03-25 Python自动化必会技能-Excel文件读取
- 2025-03-25 小伙给同事爬取数据竟获取不到,竟要使用这种请求方式才能获取?
- 2025-03-25 Python 与 SQL 神操作:如何通过查询语句获取某行到某行的数据
- 2025-03-25 python获取ES中的数据(python获取excel数据)
- 2025-03-25 详细实例操作:教你用python如何读取和写入EXCEL里面的数据
- 265℃Python短文,Python中的嵌套条件语句(六)
- 264℃python笔记:for循环嵌套。end=""的作用,图形打印
- 263℃PythonNet:实现Python与.Net代码相互调用!
- 257℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 257℃Python实现字符串小写转大写并写入文件
- 117℃原来2025是完美的平方年,一起探索六种平方的算吧
- 97℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 90℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
-
- 金母鸡量化教学场:pandas—数据挖掘的Python库
- 分享一个用于商业决策数据挖掘的python案例
- Python图像识别实战(二):批量图像读取和像素转换(附源码)
- 从小白到大神,这10个超实用的 Python 编程技巧不可少
- 太震撼!527页战略级Python机器学习实战,实用度碾压群书!附PDF
- 一篇文章带你解析Python进程(一篇文章带你解析python进程怎么写)
- 大数据分析师如何进行数据挖掘?大数据分析师丨 2025 年报考攻略
- UG编程第34节:浅谈机床坐标系(ug编程机床坐标系细节)
- 想入门Python?先狠下心来死磕这7个方向
- Python大屏看板最全教程之Pyecharts图表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)