我试图抓取亚马逊的产品页面( https://www.amazon.com/dp/B0B6TR2GTJ), 代码如下:
import requests
url = "https://www.amazon.com/dp/B0B6TR2GTJ"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'Accept-Language': 'en-US, en;q=0.5'
}
r= requests.get(url, headers = headers)
print(r.status_code)
print("-------------------")
doc = pq(r.text)
print(doc("title"))
print("-------------------")
print(r.text)
结果如下(被判断为机器人了): Headers 尝试了各种写法, 都是一样的结果.
503
-------------------
<title>Sorry! Something went wrong!</title>
-------------------
<!--
To discuss automated access to Amazon data please contact [email protected].
For information about migrating to our APIs refer to our Marketplace APIs at https://developer.amazonservices.com/ref=rm_5_sv, or our Product Advertising API at https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html/ref=rm_5_ac for advertising use cases.
-->
<!doctype html>
......
我爬虫还在初学阶段, 有没有前辈大神帮帮我. 万分感谢
1
kile 2022-10-14 14:53:24 +08:00 5
初学阶段为什么要去尝试顶级难度的电商爬虫...
|
2
Kinnice 2022-10-14 14:57:10 +08:00
我学会了 1+1=2 ,我要去解决哥德巴赫猜想了
|
3
cy1027 2022-10-14 15:06:16 +08:00
简单一点的打开浏览器复制请求头,带上就行,复杂一点的点开 debugger ,找出关键 js ,通过 js 生成对应的 cookie 等参数,加入 headers 里面,再请求就可以了,如果亚马逊对 python 的请求指纹进行了识别,可以用 pycurl 进行请求,什么,你又问 pycurl 怎么用?先安装,再调用就行了!!!
|
4
cy1027 2022-10-14 15:13:13 +08:00
@cy1027 当然了,有些 js 会加密,不会直接让你运行,专业点的说法就叫加壳了,这时你就需要脱壳,把 js 的龟壳脱下来,看看他的真容,然后他就会告诉你 cookie 怎么生成了,那么脱壳具体的步骤是什么呢?你可以化身人肉编译器,用眼睛编译一下 js ,在大脑中运行一部分,这时,js 会变成普通的 js 的样子,这个时候你就能认出哪个变量是干什么用的了,这个时候你会发现他的 js 对运行环境进行了检测,你要补充一下运行环境,欺骗一下这个 js ,它就会告诉你正确的 cookie 了
|
5
fournoas 2022-10-14 15:23:37 +08:00
不行就用无头浏览器爬咯
|
6
fbichijing 2022-10-14 16:23:31 +08:00
2022-10-14 16:20:40 刚试了一下,headers 写全可以信息爬出来。
|
7
ospider 2022-10-14 16:29:28 +08:00
TLS ja3 指纹,你用 python 怎么也改不了的
|
8
f165af34d4830eeb 2022-10-14 16:29:34 +08:00 7
|
9
westoy 2022-10-14 16:32:50 +08:00
直接放弃
这只是入门的无差别格挡 之后还有限频、 随机变换页面规则、风控, 到这一步的时候你会发现你虽然爬到了数据, 但你不知道你爬到的数据是真的还是假的.......... |
10
lambdaq 2022-10-14 16:42:28 +08:00
问题是,你 python 代码本来就是机器人啊。别人识别的没毛病啊。
|
11
pengtdyd 2022-10-14 17:09:27 +08:00
你这个水平还想爬电商网站,回去再练练吧。
|
12
pepesii 2022-10-14 17:15:22 +08:00
可能你需要搜索下这些关键词,设备指纹,ja3 指纹,creepjs
|
13
ian77729 2022-10-14 17:36:29 +08:00
puppeteer 和 selenium
|
14
bobobruce 2022-10-14 17:45:48 +08:00
chromedrive
|
15
laravel 2022-10-14 19:21:02 +08:00
这种限制多的最好用 puppeteer
另外有需要 woocommerce 产品采集入库的联系我微信:gekongfei 长期合作,价格优惠。 |
16
p1956 2022-10-14 21:06:51 +08:00
idm 就可以
|
17
CrabAss 2022-10-14 21:42:41 +08:00
初学就开始爬 Amazon ,OP 是个狠人
|
18
Puteulanus 2022-10-14 21:55:50 +08:00
没那么夸张吧,之前做过 Amazon 的上货提醒,感觉和没设防差不多了都
也可能现在变严了 同一个 IP 扒多了可能遇到这个提示,会被拉黑一段时间,得换 IP |
19
dreamtrail 2022-10-15 09:32:41 +08:00
@Puteulanus
你那是很久以前了吧,几年前我想弄个 ps5 的上货提醒,写了个简单的脚本就发现不行了 |
20
wyzh97 OP 额, 这么多热心的朋友: 我网上看了下, 使用 Selenium 是比较方便的哈, 就是有点笨重, 我回头试一下 phantomJS 看能否搞定, 就是 CentOS 上布置起来可能有点费劲了
|
21
blinkdr 2022-10-15 16:27:34 +08:00 via Android
rpa 也行吧,虽然笨了点
|