Maps::Yandex - Yandex 地图爬虫工具

爬虫工具概览
Yandex Maps 爬虫工具用于采集机构的联系方式数据。
A-Parser 的功能允许保存数据抓取设置以便后续使用(预设)、设置数据抓取计划等等。您可以使用自动查询扩展、从文件中替换子查询、遍历数字字母组合和列表,以获取尽可能多的结果。
得益于内置强大的 Template Toolkit 模板引擎,可以将结果保存为您需要的任何形式和结构,它允许对结果应用额外的逻辑,并以各种格式输出数据,包括 JSON、SQL 和 CSV。
采集数据
- 机构名称
- 地址和坐标
- 评分、评论数量和价格政策
- 类别和标签
- 网站、社交网络和电话
- 照片和徽标链接
- 描述
- Yandex Maps 上的机构页面链接
- 营业时间信息
功能
- 必须指定搜索区域的坐标和缩放级别
- 可以设置采集数据的页数
- 可以指定结果语言
- 可以使用 AntiGate 绕过验证码
应用场景
- 采集指定区域内的机构列表
- 获取机构联系方式
- 任何其他涉及在地图上搜索机构的场景
查询
作为查询,需要指定关键词,就像直接在 Yandex Maps 搜索框中输入一样,例如:
披萨
结果输出选项
得益于内置的 Template Toolkit 模板引擎,A-Parser 支持灵活的结果格式化,这使其能够以任意形式以及结构化形式(例如 CSV 或 JSON)输出结果。
默认输出
结果格式:
$serp.format('$name ($rating): $address\n')
结果显示了机构列表、评分和地址:
Pirogi № 1 (4.9): 俄罗斯, 莫斯科, Bolshiye Kamenshchiki 街, 9, str. B
Einstein lounge (4.8): 俄罗斯, 莫斯科, Taganskaya 街, 29, str. 1
Gusto (4.1): 俄罗斯, 莫斯科, Bolshaya Dmitrovka 街, 7/5s1
Friends (4.4): 俄罗斯, 莫斯科, Krasnobogatyrskaya 街, 90, str. 2
Shisha City (4.4): 俄罗斯, 莫斯科, Vorontsovskaya 街, 6, str. 7
Jacks (4.4): 俄罗斯, 莫斯科, 1-ya Frezernaya 街, 2/1s10
Guilty Pleasure 餐厅 (4.3): 俄罗斯, 莫斯科, Oruzheynyy lane, 15A
White Fox (4.3): 俄罗斯, 莫斯科, Bolshoy Drovyanoy lane, 6
输出所有联系数据
结果格式:
$serp.format('$name ($rating): $address, $reviews, $price, $categories, $tags, $site, $phones, $photo, $coordinates, $social, $logo, $description, $link\n')
结果示例:
Pirogi № 1 (4.9): 俄罗斯, 莫斯科, Bolshiye Kamenshchiki 街, 9, str. B, 256, , 送餐, 披萨店, 面包店, 免费送货, 刷卡支付, 食品配送, 送餐, https://piroginomerodin.ru/, +7 (499) 642-32-71, +7 (495) 127-78-47, https://avatars.mds.yandex.net/get-altay/4489303/2a000001787d1771aebf8b4b849d986caea1/XXXL, 37.65577,55.738421, https://vk.com/piroginomerodin, https://www.instagram.com/piroginomerodin/, https://avatars.mds.yandex.net/get-tycoon/474201/2a0000016dd037b101f0cd4ad3968416440e/priority-headline-logo, , https://yandex.ru/maps/org/105121172016/
Einstein lounge (4.8): 俄罗斯, 莫斯科, Taganskaya 街, 29, str. 1, 153, 900–1500 ₽, 水烟酒吧, 酒吧, 酒馆, 智力游戏, 桌游, 露天露台, 刷卡支付, 商务午餐, 投影仪, Wi-Fi, 体育赛事转播, , +7 (968) 068-99-09, https://avatars.mds.yandex.net/get-altay/2419289/2a000001748889d4246610a4f452790b8eee/XXXL, 37.668036,55.739651, https://www.instagram.com/einstein_lounge/, https://avatars.mds.yandex.net/get-tycoon/1635364/2a00000170a408e3bda96d25bf44857eed75/priority-headline-logo, , https://yandex.ru/maps/org/127811263445/
Gusto (4.1): 俄罗斯, 莫斯科, Bolshaya Dmitrovka 街, 7/5s1, 133, 1500–1700 ₽, 餐厅, 披萨店, 商务午餐, Wi-Fi, 咖啡外带, 外卖, 露天露台, 刷卡支付, 体育赛事转播, http://www.gusto-moscow.ru/, +7 (495) 650-69-22, https://avatars.mds.yandex.net/get-altay/2887807/2a0000017357f4fe86d86cd5d3e300855b86/XXXL, 37.614142,55.760285, https://www.facebook.com/pages/gusto-italyanskaya-kukhnya/300193353486996, https://www.instagram.com/gusto.rest/, , , https://yandex.ru/maps/org/1080982853/
Shisha City (4.4): 俄罗斯, 莫斯科, Vorontsovskaya 街, 6, str. 7, 68, 900–1200 ₽, 水烟酒吧, 酒吧, 酒馆, Anti-cafe, 桌游, 残疾人停车位, 刷卡支付, 精酿啤酒, 在线预订, Wi-Fi, 体育赛事转播, http://www.shishataganka.ru/, +7 (958) 100-62-71, https://avatars.mds.yandex.net/get-altay/212783/2a0000015d991abf6d89fa812daac5491c4f/XXXL, 37.654414,55.739423, https://vk.com/shishacitytaganka, https://www.facebook.com/shishacitytaganka, https://www.instagram.com/shishacitytaganka, https://avatars.mds.yandex.net/get-tycoon/479792/2a000001746e2044d0177e25adeba8e943ac/priority-headline-logo, , https://yandex.ru/maps/org/1695943598/
输出到 CSV 表格
结果格式:
[% FOREACH serp;
tools.CSVline(name, rating, address, reviews, price);
END %]
结果示例:
"Pirogi № 1",4.9,"俄罗斯, 莫斯科, Bolshiye Kamenshchiki 街, 9, str. B",256,
"Einstein lounge",4.8,"俄罗斯, 莫斯科, Taganskaya 街, 29, str. 1",153,"900–1500 ₽"
Gusto,4.1,"俄罗斯, 莫斯科, Bolshaya Dmitrovka 街, 7/5s1",134,"1500–1700 ₽"
"Shisha City",4.4,"俄罗斯, 莫斯科, Vorontsovskaya 街, 6, str. 7",68,"900–1200 ₽"
"Kalyannaya Kult Game",4.5,"俄罗斯, 莫斯科, Shabolovka 街, 2",66,"1200–1500 ₽"
将结果转储为 JSON
通用结果格式:
[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;
obj = {};
obj.query = query;
obj.serp = [];
FOREACH item IN p1.serp;
obj.serp.push({
name = item.name
rating = item.rating
address = item.address
phones = item.phones
});
END;
obj.json %]
起始文本:
[
结束文本:
]
结果示例:
[{
"query": "披萨",
"serp": [
{
"name": "Pirogi № 1",
"address": "俄罗斯, 莫斯科, Bolshiye Kamenshchiki 街, 9, str. B",
"phones": "+7 (499) 642-32-71, +7 (495) 127-78-47",
"rating": "4.9"
},
{
"name": "Einstein lounge",
"address": "俄罗斯, 莫斯科, Taganskaya 街, 29, str. 1",
"phones": "+7 (968) 068-99-09",
"rating": "4.8"
},
{
"name": "Gusto",
"address": "俄罗斯, 莫斯科, Bolshaya Dmitrovka 街, 7/5s1",
"phones": "+7 (495) 650-69-22",
"rating": "4.1"
},
]
}]
提示
要在任务编辑器中使用“Prepend text”和“Append text”选项,需要激活“More options”。
可能的设置
| 参数 | 默认值 | 描述 |
|---|---|---|
| Coordinates | 37.6572693,55.780844 | 搜索区域的坐标,必填参数 —— 经度, 纬度,格式需与 URL 中一致 (ll=),而不是直接从地图按钮复制的坐标格式 |
| Zoom | 11 | 缩放级别,必填参数 |
| Pages count | 5 | 页数 |
| Language | English | 选择结果语言 |
| AntiGate preset | default | 预先配置的爬虫工具预设 Util::AntiGate |
