Python数据分析:爬虫从网页爬取数据需要几步?

liftword2个月前 (03-24)技术文章6

对于数据分析师来说,数据获取通常有两种方式,一种是直接从系统本地获取数据,另一种是爬取网页上的数据,爬虫从网页爬取数据需要几步?总结下来,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 爬取并保存小说

1. 安装requests pip install requests2. 安装lxml pip install lxml3. 斗罗大陆网页代码4 import requests from lxml i...

python:最简单爬虫之爬取小说网Hello wrold

以下用最简单的示例来演示爬取某小说网的类目名称。新建一个retest.py,全文代码如下,读者可以复制后直接运行。代码中我尽量添加了一些注释便于理解。需要说明的一点,该小说网站如果后续更新改版了,文中...

python爬取电子课本,送给居家上课的孩子们

在这个全民抗疫的日子,中小学生们也开启了居家上网课的生活。很多没借到书的孩子,不得不在网上看电子课本,有的电子课本是老师发的网络链接,每次打开网页去看,既费流量,也不方便。今天我们就利用python的...

python爬虫教程之爬取当当网 Top 500 本五星好评书籍

我们使用 requests 和 re 来写一个爬虫作为一个爱看书的你(说的跟真的似的)怎么能发现好书呢?所以我们爬取当当网的前 500 本好五星评书籍怎么样?ok接下来就是学习 python 的正确姿...

超有趣!用 Python 爬取抖音热门视频数据,探索爆款密码

在当今的社交媒体时代,抖音无疑是最热门的平台之一。每天都有海量的视频被上传,其中一些视频迅速走红,成为爆款。你是否好奇这些热门视频背后有什么规律?今天,我们就用 Python 来爬取抖音热门视频数据,...

这样用Python爬虫爬取淘宝,京东商品信息,速度快的一皮

无私分享全套Python爬虫干货,如果你也想学习Python,可私信小编: 资料分享 获取。作为一个快乐的爬爬,爬来爬去当然是乐此不疲的事情,这样爬速度真正的快哦。使用的工具(Python+pycha...