在我们日常使用搜索引擎的时候,用户在搜索框搜索相关问题时,会输入大量的关键字,每一次输入就是对关键字的一次投票。那么关键字被输入的次数越多,它对应的查询就比较热门,所以需要把查询的关键字记录下来,并且统计出每个关键字的频率,方便提示结果按照频率排序。而在亚马逊中的搜索也是如此。那么如何批量的根据自己设置的关键词去采集亚马逊推荐的热搜词呢?
很简单,用Python只需4步即可实现!
1、打开浏览器访问亚马逊,在亚马逊主页按下“F12”或者右击查看网页源代码,并切换到“Network”。
2、在搜索框中输入任意字符,并抓包分析数据。
这时候我们会看到控制台中出现了“suggestions?.....”的请求。点击并切换到Response选项卡中,可以清楚的看到亚马逊返回的数据。我们将数据拷贝出来,美化一下访问——www.json.cn将所得数据拷贝进去,返回的数据是一个标准的json数据,在数据中”Value”这个“键”对应的值就是亚马逊的热搜关键字!
如此一来我们只需要带上关键字模拟请求这个接口,即可拿到亚马逊返回的热搜关键字。是不是很简单?
3、复制Curl,生成代码。
还是用最简单的方法给大家演示,首先在“suggestions?.....”的请求上鼠标右键选择Copy→Copy as cURL。
然后访问https://curl.trillworks.com/(注意这是英文网站,访问需要一定的时间),将复制的cURL填进去即可自动生成Python代码。再将生成的代码复制出来,在python的集成开发环境——PyCharm中复制进去。
4、完善代码,运行程序。
在测试当中,将一些不必要的参数删除最终只需三个参数、几行代码即可实现。
import requests
keyword = str(input('请输入关键字:'))
headers = {
'Accept': 'application/json, text/java, */*; q=0.01',
'Referer': 'https://www.amazon.com/',
'Origin': 'https://www.amazon.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36',
}
params = (
('mid', 'ATVPDKIKX0DER'),
('alias', 'aps'),
('prefix', keyword),
)
response=requests.get('https://completion.amazon.com/api/2017/suggestions',
headers=headers, params=params)
suggestions = response.json()['suggestions']
for i in suggestions:
value = i['value']
print(value)
当然上述几行代码只能实现个别关键词热搜词的采集,面对多个关键词时,我们可以将关键字批量的写入然后挨个的请求即可实现批量采集的目的。