这里是Python爬虫实例——爬取美团美食数据的完整攻略。
目录
前言
本篇文章将介绍如何使用Python爬虫爬取美团美食数据,爬取的内容包括美食店名、店铺评分、店铺地址和人均消费等信息。为了方便展示,我们将把数据保存成Excel表格,并在程序中进行展示。
爬虫流程说明
爬虫流程如下:
- 分析网页源码,找出需要爬取的数据;
- 使用Python获取网页信息;
- 解析网页信息,把需要的数据提取出来;
- 保存数据。
代码实现
以下是详细的代码实现过程:
第一步:分析网页源码
打开美团美食网页并右键查看源代码,可以发现店名和评分存储在<div>
标签中,店铺地址和人均消费存储在<div>
标签中,代码如下:
<div class="title">
<a href="//www.meituan.com/meishi/10363465/" data-click-name="shop_title_click" data-shopid="10363465" target="_blank" data-reactid="...">店铺名</a>
</div>
<div class="comment">
<span class="star_icon" style="width:55px" data-reactid="..."></span>
<span class="comment-tip" data-reactid="...">4.6分</span>
</div>
<div class="address" data-reactid="...">
<span itemprop="locality region" data-reactid="...">地址</span>
<span class="pipe" data-reactid="...">|</span>
<span data-reactid="...">人均<span class="price" data-reactid="...">¥42</span></span>
</div>
第二步:获取网页信息
使用requests
库获取网站信息,代码如下:
import requests
url = 'https://www.meituan.com/meishi/g107'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text
第三步:解析网页信息
使用BeautifulSoup
库解析网页源码,并提取需要的数据,代码如下:
from bs4 import BeautifulSoup
import pandas as pd
soup = BeautifulSoup(html, 'html.parser')
shops = soup.find_all('div', class_='poi-tile-nodeal')
data = []
for shop in shops:
name = shop.find('a').get_text()
address = shop.find('div', class_='address').get_text()
comment = shop.find('span', class_='comment-tip').get_text()
price = shop.find('div', class_='price').get_text()
data.append({'name': name, 'address': address, 'comment': comment, 'price': price})
df = pd.DataFrame(data)
第四步:保存数据
使用pandas
库把数据保存成Excel表格并且在命令行中进行展示,代码如下:
df.to_excel('meishi.xlsx', sheet_name='美食', index=False)
print(df)
这样就完成了爬虫程序的编写。
总结
本篇文章介绍了如何使用Python爬虫爬取美团美食数据,以及如何使用requests
、BeautifulSoup
和pandas
等库进行网页信息的获取、解析和保存。同时,还对爬虫流程进行了详细的说明,运用了markdown语法的标题、代码块等等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬虫实例——爬取美团美食数据 - Python技术站