不知道有多少人感兴趣,大家应该都知道tuixue吧,感谢创建tuixue的大佬。tuixue有一个缺点就是没办法看tcn=no的slot,所以我之前研究了一下大佬的代码,发现其实可以很容易就改成自用的。这个办法应该是适用于所有的签证类型,tcn yes or no,AIS系统(英国、加拿大等国家)的美国签证预约系统。因为我比较熟悉在加拿大约h1b,所以以下用加拿大的举例,大家举一反三。
- 先注册好你的usvisa账号,把fee交了。
- 再注册一个新的usvisa账号(这边叫账号2),个人信息和DS-160都随便填,签证类型和tcn选项与你自己的真实的账号一致即可,不要交钱。这里记下这个账号的schedule id。什么是schedule id?就是URL里一串8位数字,比如https://ais.usvisa-info.com/en-ca/niv/schedule/12345678,那么12345678就是schedule id。
接下来就是用账号2来刷位置,一旦刷到了,马上登录你真实的账号,抢下位置。请注意,这个教程不包含帮你把位置抢下来这个步骤,meaning你要自己手动抢。
以下代码参考tuixue,需要一点点的python/cs基础读懂,其实很好理解。
import requests
from bs4 import BeautifulSoup
import time
MONTH = {
"January": 1,
"February": 2,
"March": 3,
"April": 4,
"May": 5,
"June": 6,
"July": 7,
"August": 8,
"September": 9,
"October": 10,
"November": 11,
"December": 12
}
schedule_id = 'insert-schedule-id-here'
country = 'en-ca' # replace it with your desired country code
session = 'insert-session-here'
user_agent = "insert-user-agent-here"
def refresh(country_code, schedule_id, session):
req = requests.Session()
headers = {
"User-Agent": user_agent,
"Referer": "https://ais.usvisa-info.com/%s/niv/schedule/%s/continue_actions" % (country_code, schedule_id),
"Cookie": "_yatri_session=" + session
}
r = req.get("https://ais.usvisa-info.com/%s/niv/schedule/%s/payment" % (country_code, schedule_id), headers=headers)
if r.status_code != 200:
print("Error")
soup = BeautifulSoup(r.text, "html.parser")
time_table = soup.find("table", {"class": "for-layout"})
result = []
if time_table:
for tr in time_table.find_all("tr"):
tds = tr.find_all("td")
if not len(tds) == 2:
continue
place = tds[0].text
date_str = tds[1].text
s = date_str.split()
year, month, day = 0, 0, 0
if len(s) >= 3 and s[0] != "No":
day_str, month_str, year_str = s[-3], s[-2].replace(",", ""), s[-1]
year, month, day = int(year_str), MONTH[month_str], int(day_str)
result.append([place, (year, month, day)])
# add your condition here
# trigger an alarm when a slot is found
session = r.cookies["_yatri_session"]
return result, session
if __name__ == '__main__':
while True:
result, session = refresh(country, schedule_id, session)
print(result)
# print(session)
time.sleep(300) # sleep 5min
可以看出其实你需要改的代码就有以下几行
schedule_id = 'insert-schedule-id-here'
country = 'en-ca' # replace it with your desired country code
session = 'insert-session-here'
user_agent = "insert-user-agent-here"
schedule_id 就是之前获得的schedule_id
country这里是加拿大的code,你登录账号后URL里就有country code,你可以改成你账号的国家
user_agent和session怎么获得的2楼继续


