python模拟登录饿了么并爬取指定位置附近的商家信息

这篇博客介绍了如何使用Python模拟登录饿了么网站,并爬取指定位置附近的商家信息。涉及的模块包括openpyxl进行Excel读写、pypinyin实现汉字转拼音、geohash获取经纬度编码、requests的cookies处理以及json数据转换。通过学习,可以爬取全国多地的商家数据,具有潜在的商业价值。内容中还提到了登录过程中的问题及解决办法,如geohash导入错误和图片验证码的应对策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 此篇内容使用到了以下模块:

1.使用openpyxl实现excel的读写

2.使用pypinyin实现汉子转拼音

3.使用geohash获取经纬度编码

4.使用requests中的utils方法实现cookies转字典和字典转cookies

5.使用json对列表和字典以及字符串之间进行转换

通过此次的学习可以爬取到全国2000多个城市指定位置附近的商家信息,如果再进一步挖掘的就具备了很大的商业价值

import requests
from pypinyin import lazy_pinyin
import geohash
import json
import openpyxl
session = requests.session()


# 将处理后的信息写入excel文件中
def write_info():
    rest_list = get_nearby_restaurants_by_menu()
    if rest_list != False:
        # 新建excel
        wb = openpyxl.Workbook()
        # 获取工作表
        sheet = wb.active
        # 工作表名称
        sheet.title = "饿了么商家信息"
        # 设置单元格的列宽
        sheet.column_dimensions['A'].width = 40
        sheet.column_dimensions['B'].width = 20
        sheet.column_dimensions['C'].width = 60
        sheet.column_dimensions['D'].width = 20
        sheet.column_dimensions['E'].width = 30
        # 表头信息
        headers =['商家名称','月销量','商家活动','配送费','营业时间']
        sheet.append(headers)
        # 写入数据
        for rest in rest_list:
            sheet.append([rest['name'],rest['order_num'],rest['activities'],rest['ship_fee'],rest['open_hours']])
        # 保存数据
        wb.save("饿了么商家信息.xlsx")


# 信息处理,获取所需要的信息
def get_result(res):
    restaurants_infos = []
    for info in res:
        infos = {}
        name = info['name']  # 商家名称
        recent_order_num_display = info['business_info']
        order_num = json.loads(recent_order_num_display)['recent_order_num_display']  # 月销量
        open_hours = info['opening_hours'][0]  # 营业时间
        latitude = info['latitude']  # 商家地理位置经纬度
        longitude = info['longitude']
        piecewise_agent_fee = info['piecewise_agent_fee']['tips']  # 配送费
        activities = info['activities'][0]['tips']  # 活动
        infos['name'] = name
        infos['order_num'] = order_num
        infos['open_hours'] = open_hours
        infos['latitude'] = latitude
        infos['longitude'] = longitude
        infos['ship_fee'] = piecewise_agent_fee
        infos['activities'] = activities
        restaurants_infos.append(infos)
        # print(name + " " + str(order_num) + " " + str(open_hours) + " " + str(latitude) + " " + str(
   
好的!下面是一个关于如何使用Python爬取古茗茶饮门店地址信息的简单介绍: --- 要通过Python获取“古茗”茶饮店的地址数据,通常需要完成以下几个步骤: ### 1. 分析目标网站结构 首先访问提供古茗门店位置信息的官方网站或其他第三方平台(如美团、饿了么等),分析网页内容是如何组织的。如果该页面是动态加载的内容,则可能涉及JavaScript渲染,你需要进一步查看API请求。 ### 2. 使用合适的工具库 常见的用于网络爬虫的数据采集工具有: - `requests` 或者更高级的异步版本 `aiohttp`: 获取HTML文档; - `BeautifulSoup4 (bs4)` : 解析静态HTML文件并提取有用的信息; - 如果遇到AJAX或React/Vue之类的前端框架生成的数据流时,可以考虑引入 `Selenium`, 它支持模拟浏览器操作来抓取JS渲染后的完整DOM树; #### 示例代码片段(假设为静态页面): ```python import requests from bs4 import BeautifulSoup as BS url = "https://example.com/gumingshops" # 替换为目标实际网址 response = requests.get(url) soup = BS(response.text, 'html.parser') # 假设店铺地址储存在 class='shop-address' 的标签内 addresses = soup.find_all('div', {'class': 'shop-address'}) for addr in addresses: print(addr.text.strip()) ``` ### 注意事项 1. **遵守法律法规**:确保你对公开资源进行合理合法地使用,并尊重各站点的服务条款。 2. **频率控制**:避免过于频繁请求导致IP封禁。 3. **反爬机制应对**:很多现代网站设置了验证码验证以及User-Agent检测等功能防止恶意爬虫活动,请提前做好准备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值