我正在制作一个Python脚本来通过解析页面的HTML从Amazon获取信息。我有以下代码,该代码不起作用:
const sampleObj = {
home: true,
products_edit: true,
products_create: true,
orders_delete: true,
pages_category_create: true
}
const res = Object.keys(sampleObj).reduce((acc,cur)=>{
const value = sampleObj[cur];
const tree = cur.split("_");
const root = tree.shift();
if(!acc[root]){
acc[root] = {};
if(tree.length === 0){
acc[root].status = "full"
return acc;
} else {
acc[root].subOptions = {};
acc[root].status = "limited";
}
}
acc[root].subOptions[tree.shift()] = tree.reverse().reduce((acc,cur)=>{
return {[cur]:acc}
}, value);
return acc;
}, {});
console.log(res);
此代码引发import requests
url = "http://www.amazon.com/"
text = requests.get(url)
print(text)
。
然后我找到了解决方法here,现在代码如下:
HTTPError: HTTP Error 503: Service Temporarily Unavailable
有效。我知道import requests
url = "http://www.amazon.com/"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'}
text = requests.get(url, headers=headers)
print(text)
函数的header
参数的目的是让Amazon认为HTTP请求来自浏览器。
现在要问我的问题-是否有其他方法可以访问亚马逊而不使用此(看起来像)“肮脏的把戏”?
此外,这样做是“道德的”吗?我一直在考虑将此脚本用于个人用途或将其作为功能集成到Discord机器人中,但是在继续进行之前,我想确保我在这里没有做任何有问题的事情。
先谢谢您。干杯。
答案 0 :(得分:1)
不,这不道德!
在“附加亚马逊软件条款”标题下对此进行了提及
您不得将Amazon软件的任何部分合并到其他程序中,也不得与其他程序一起编译其任何部分,或以其他方式复制(行使本节授予的权利除外),修改,创建衍生产品,分发,全部或部分分配对Amazon软件的任何权利或许可
但是您可以查看由Amazon Developer Documentation提供的API,它可能对您有帮助!
另一个原因是这样做会给服务器带来负载,这会使它们付出巨大的代价,而不会带来任何利润。
如果可以阅读this主题以获取更多查询,您可能还有更多后续问题