A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 14649|回复: 36

心疼大家的舟车劳顿,今天开始告别手动刷日亚的日子。

[复制链接]

精华
0
帖子
142
威望
0 点
积分
142 点
种子
5 点
注册时间
2016-7-8
最后登录
2024-4-26
 楼主| 发表于 2017-3-31 11:22  ·  湖北 | 显示全部楼层 |阅读模式
本帖最后由 ryukinkou 于 2017-3-31 15:47 编辑

今天早上日亚大量补货了,不知道你抢到了没有,没有抢到,也不用灰心,叔叔教你方法,保证你下次一定抢到。

这是一段自动监视脚本,下面本人将零基础介绍它。如果版主觉得不适合,请直接删除本贴。
其实这是一段通用脚本,你可以用它抢任何日亚自营的东西。只要替换url = 后面的地址。

1,先下载安装python,地址如下:
https://www.python.org/ftp/python/3.5.3/python-3.5.3-amd64.exe
双击安装,一路next,记得勾选:Add python.exe to path
说明,这并不是什么可疑的软件,是流行编程语言python的运行库。

2,安装需要的类库。
跟我来操作,首先打开命令行(win-R,输入cmd,回车)

输入下面的命令:
pip3 install bs4
回车,等待安装完成

3,把下面这段代码复制下来,保存为NS.py。
  1. # coding=utf-8

  2. import **
  3. import urllib.request as request
  4. from bs4 import BeautifulSoup
  5. import smtplib
  6. from email.mime.text import MIMEText
  7. import random

  8. check_1 = False
  9. check_2 = False

  10. # switch
  11. url = 'https://www.amazon.co.jp/dp/B01NCXFWIZ'

  12. # zelda
  13. # url = 'https://www.amazon.co.jp/dp/B01N12HJHQ'

  14. content = url

  15. while True:

  16.     try:
  17.         opener = request.build_opener()
  18.         opener.addheaders = [('User-agent', 'Mozilla/5.0')]
  19.         page = opener.open(url).read()
  20.         soup = BeautifulSoup(page, "html.parser")
  21.     except Exception as err:
  22.         print(err)
  23.         **.sleep(random.randint(10, 20))
  24.         continue

  25.     for div in soup.find_all('div', attrs={'id': 'availability'}):
  26.         for span in div.find_all('span'):
  27.             if str.strip(span.text).find('在庫あり') >= 0:
  28.                 check_1 = True
  29.                 break

  30.         if check_1:
  31.             break

  32.     for div in soup.find_all('div', attrs={'id': 'shipsFromSoldBy_feature_div'}):
  33.         for sub_div in div.find_all('div', attrs={'id': 'merchant-info'}):
  34.             if str.strip(sub_div.text).find('この商品は、Amazon.co.jp が販売、発送します') >= 0:
  35.                 check_2 = True
  36.                 break
  37.                                
  38.         if check_2:
  39.             break

  40.     if not check_1 or not check_2:
  41.         print('SOLD OUT')
  42.     else:
  43.         msg = MIMEText(content, _subtype='plain', _charset='utf-8')
  44.         msg['Subject'] = 'Nintendo Switch ゲットだぜ'
  45.         msg['From'] = '<你的邮件地址>'
  46.         msg['To'] = '<你的邮件地址>'

  47.         try:
  48.             server = smtplib.SMTP()
  49.             server.connect('<邮件服务商的SMTP服务器>')
  50.             server.login('<用户名>', '<密码>')
  51.             server.sendmail(msg['From'], msg['To'], msg.as_string())
  52.             server.close()
  53.         except Exception as err:
  54.             print(err)
  55.             **.sleep(random.randint(10, 20))
  56.             continue

  57.         print('Nintendo Switch ゲットだぜ at Amazon.com')

  58.         break

  59.     **.sleep(random.randint(20, 30))
复制代码
在这之前,最好去确认一下自己的邮件服务商的SMTP机能是否顺畅。最简单的方式,使用你的手机通过smtp的方式添加一个邮箱,然后自己给自己发封邮件。
然后根据自己的信息,替换尖括号里面的内容(包括尖括号在内)。**是被***的t i m e,这个也注意改一下。

4,运行脚本。
在cmd命令行中输入
python NS.py
当然,NS.py需要带有路径,比如我放在c盘根的watchdog目录下,就要执行python c:\watchdog\NS.py。
脚本会自动循环,20-30秒轮询日亚一次,基本不会错过。

多少有点访问失败的时候,不用管它,程序自身会处理。

打开你的手机设置,把邮件的提醒打开。当日亚自营补货的时候,邮件会在30秒内通知你,这是今天早上的通知:


事先把账号登陆好,点链接进去直接抢就行了。

让它自动帮你下单也是可以做到的,只需要在亚马逊里面设定好1 click注文,在NS页面打开(非数字商品默认是关闭的),然后用pymouse稍作改造就可以了,这里就不放了,通知你抢单足够你操作了,今早的补货撑了40分钟。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

精华
0
帖子
209
威望
0 点
积分
214 点
种子
12 点
注册时间
2016-11-3
最后登录
2022-5-19
发表于 2017-3-31 11:36  ·  上海 | 显示全部楼层
然而习惯没带钱包  信用卡后面的码忘了  在淘宝买完礼品卡已经没货了  悲剧啊

精华
0
帖子
5698
威望
0 点
积分
5422 点
种子
568 点
注册时间
2007-6-4
最后登录
2024-4-23
发表于 2017-3-31 11:38  ·  北京 | 显示全部楼层


这么闹腾反而冷静了

谁爱折腾谁折腾去吧

精华
0
帖子
1526
威望
0 点
积分
1802 点
种子
101 点
注册时间
2009-2-27
最后登录
2023-2-8
发表于 2017-3-31 11:50  ·  广东 | 显示全部楼层
这东西传开了,迟早***大陆,中国人最喜欢耍小聪明把规矩玩坏

精华
0
帖子
142
威望
0 点
积分
142 点
种子
5 点
注册时间
2016-7-8
最后登录
2024-4-26
 楼主| 发表于 2017-3-31 11:54  ·  湖北 | 显示全部楼层
落絮飘零 发表于 2017-3-31 11:50
这东西传开了,迟早***大陆,中国人最喜欢耍小聪明把规矩玩坏 ...

不会的,几乎所有比价抢购网站(中外)都是用的类似的方法。

精华
0
帖子
666
威望
0 点
积分
669 点
种子
5 点
注册时间
2016-3-16
最后登录
2020-1-6
发表于 2017-3-31 12:54  ·  上海 | 显示全部楼层
落絮飘零 发表于 2017-3-31 11:50
这东西传开了,迟早***大陆,中国人最喜欢耍小聪明把规矩玩坏 ...

普通查询而已,就算几万人一起用,对亚马逊服务器压力也不会太大。

精华
0
帖子
1163
威望
0 点
积分
1241 点
种子
5 点
注册时间
2009-7-18
最后登录
2019-12-22
发表于 2017-3-31 12:58  ·  广东 来自手机 | 显示全部楼层
这个是设定了价格的?会自动判断是不是日亚自营?

精华
0
帖子
142
威望
0 点
积分
142 点
种子
5 点
注册时间
2016-7-8
最后登录
2024-4-26
 楼主| 发表于 2017-3-31 13:34  ·  湖北 | 显示全部楼层
本帖最后由 ryukinkou 于 2017-3-31 13:35 编辑
sabercagali 发表于 2017-3-31 12:58
这个是设定了价格的?会自动判断是不是日亚自营?


没有判断价格的,只是通过页面抓取关键字判断。

不过我确实写过判断价格的,需要的话可以加上:
  1.     check_3 = False
  2.     for div in soup.find_all('div', attrs={'id': 'unqualifiedBuyBox'}):
  3.         for span in div.find_all('span', attrs={'class': 'a-color-price'}):
  4.             price = ''.join(filter(lambda x: x.isdigit(), span.text))
  5.             if int(price) <= 35000:
  6.                 check_3 = True
复制代码
35000可以自己设定价格阈值。

精华
0
帖子
184
威望
0 点
积分
204 点
种子
5 点
注册时间
2008-8-26
最后登录
2021-3-15
发表于 2017-3-31 13:41  ·  天津 | 显示全部楼层
python 玩的6啊,用来做爬虫再合适不过了

精华
0
帖子
1526
威望
0 点
积分
1802 点
种子
101 点
注册时间
2009-2-27
最后登录
2023-2-8
发表于 2017-3-31 19:44  ·  广东 | 显示全部楼层
tanyci 发表于 2017-3-31 12:54
普通查询而已,就算几万人一起用,对亚马逊服务器压力也不会太大。

不是普通查询了,会自动下单的,感觉还是自己玩死自己系列
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-4-27 01:57 , Processed in 0.203978 second(s), 16 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部