01miaom / jiankangyizhan

健康驿站
MIT License
41 stars 27 forks source link

整个运行过程 #8

Open janiceng628 opened 2 years ago

janiceng628 commented 2 years ago

您好,非常感谢您的无私public!!

想确认一下下,是可以早上九点多的时候就直接在jupytor notebook上运行整个程序,然后手动点走登陆之后的弹框,静置着等到10:00,他就会自动运行之后的程序对吗?

刚刚顺利打好了所有code,就是运行的时候登陆完就停在了首页,看到下面的问题提到这是因为不到十点,所以静止是正常的吧?~~

太谢谢您啦!!

01miaom commented 2 years ago

代码需要等到10点整才会运行所有的部分。如果是为了调试代码可以修改 if nowTime=="10:00:00":

janiceng628 commented 2 years ago

刚刚试了,10:00的时候没反应,出现了 URLError: <urlopen error [WinError 10060] 連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為連線的主機無法回應。>

请问要怎么解决呢~~谢谢

janiceng628 commented 2 years ago

螢幕擷取畫面 2022-02-19 100829

janiceng628 commented 2 years ago

请问这个是什么原因呢?急TAT

01miaom commented 2 years ago

螢幕擷取畫面 2022-02-19 100829

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

janiceng628 commented 2 years ago

刚刚只改时间到10:40:00试了一次,是会运行的;后来改成timeArray=time.localtime(int(time.time())) 也可以~~哎呀就是恰好今天早上请求超时了嘛,会不会是因为我太早(9:51)就登陆?

01miaom commented 2 years ago

刚刚只改时间到10:40:00试了一次,是会运行的;后来改成timeArray=time.localtime(int(time.time())) 也可以~~哎呀就是恰好今天早上请求超时了嘛,会不会是因为我太早(9:51)就登陆?

之前是有遇到过请求拒绝的情况,目前没有什么好的解决方案。可以尝试直接通过URL的形式进行页面跳转,或者用post请求获取sign和timespan,构建链接直接到最后的确认页面

janiceng628 commented 2 years ago

今天时间问题搞好了,10:00自动运行了,但是点了我要预约之后,它就加载中,加载完之后还是原来的页面,点了好几次加载中,完了也还是原来的页面,请问这种情况有什么方法改善吗~~(应该是网页问题,顺带问问,不回答也没关系)谢谢你啦!!

01miaom commented 2 years ago

可以将按钮点击部分代码替换成这个,用链接的方式跳转到对应的页面 url="https://hk.sz.gov.cn:8118/passInfo/detail" browser.get(url)

janiceng628 commented 2 years ago

可以将按钮点击部分代码替换成这个,用链接的方式跳转到对应的页面 url="https://hk.sz.gov.cn:8118/passInfo/detail" browser.get(url) 螢幕擷取畫面 2022-02-22 100357 螢幕擷取畫面 2022-02-22 100412

又是失败的一天TAT

keyuxing commented 2 years ago

可以将按钮点击部分代码替换成这个,用链接的方式跳转到对应的页面

url="https://hk.sz.gov.cn:8118/passInfo/detail"

browser.get(url)

现在就是这一步特别慢,每天打开这个链接都要等上一分钟以上,等到房间列表加载出来之后已经都没了。 想问下有没有什么办法可以加快这一步呢?比如如果同时打开多个标签页进行加载,有没有可能成功率会高一些呢?

keyuxing commented 2 years ago

刚刚只改时间到10:40:00试了一次,是会运行的;后来改成timeArray=time.localtime(int(time.time())) 也可以~~哎呀就是恰好今天早上请求超时了嘛,会不会是因为我太早(9:51)就登陆?

之前是有遇到过请求拒绝的情况,目前没有什么好的解决方案。可以尝试直接通过URL的形式进行页面跳转,或者用post请求获取sign和timespan,构建链接直接到最后的确认页面

可以麻烦介绍一下链接格式吗?如何能直接跳转到x月x日的确认界面,而不是等待房间列表加载出来后从中选择呢?

janiceng628 commented 2 years ago

可以将按钮点击部分代码替换成这个,用链接的方式跳转到对应的页面 url="https://hk.sz.gov.cn:8118/passInfo/detail" browser.get(url) 螢幕擷取畫面 2022-02-25 225107

你好你好,现在网站一开始会出现这个,请问要加入什么code才能自动点击“确定”按钮呢?谢谢!

01miaom commented 2 years ago

可以加入下列代码关闭弹窗: browser.find_element_by_xpath('//div[@id="winLoginNotice"]/div/div/button').click()

Jazzwind commented 2 years ago

可以加入下列代码关闭弹窗: browser.find_element_by_xpath('//div[@id="winLoginNotice"]/div/div/button').click()

谢谢,之前就是有这个弹窗导致验证码识别不准确。关掉弹窗后验证码识别率就很高了! 验证码在边缘也有字母是会识别不准,不过反正这一步是可以提前进行的,先打开,顺利进入后只需等待10点即可。 只是有点担心提交的时候会不会也识别出问题,毕竟确认的时候还要填一次验证码

Jasonyipbb commented 2 years ago

可以将按钮点击部分代码替换成这个,用链接的方式跳转到对应的页面 url="https://hk.sz.gov.cn:8118/passInfo/detail" browser.get(url) 螢幕擷取畫面 2022-02-25 225107

你好你好,现在网站一开始会出现这个,请问要加入什么code才能自动点击“确定”按钮呢?谢谢!

你好,请问你加了这个关闭弹窗的代码后有顺利抢到票吗?谢谢

Jazzwind commented 2 years ago

螢幕擷取畫面 2022-02-19 100829

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

01miaom commented 2 years ago

螢幕擷取畫面 2022-02-19 100829

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

淘宝api的网址在浏览器中能正常打开吗?一般情况下会出现一行json文本内容。脚本中对淘宝api的请求频率确实比较高,可以考虑加入延时等代码。

Jazzwind commented 2 years ago

螢幕擷取畫面 2022-02-19 100829

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

淘宝api的网址在浏览器中能正常打开吗?一般情况下会出现一行json文本内容。脚本中对淘宝api的请求频率确实比较高,可以考虑加入延时等代码。

直接打开可以正常打开,但是可能连续多次访问后就被BAN了?你可以一直访问吗? 我今天用本机时间抢了一次,在点击"我要预约"按钮后就卡住了,然后还退出到了登录界面(可能是因为我从7点就开始挂的关系) btw,在小红书看到说网页改版了?虽然我自己去问了一下,应该只是他不懂瞎猜的。如果您方便可以看看。 https://www.xiaohongshu.com/discovery/item/621d6501000000000102c538?xhsshare=CopyLink&appuid=5ddf6cbf00000000010042cd&apptime=1646114749 mmexport1646114733283.jpgmmexport1646114736614.jpg

01miaom commented 2 years ago

螢幕擷取畫面 2022-02-19 100829

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

淘宝api的网址在浏览器中能正常打开吗?一般情况下会出现一行json文本内容。脚本中对淘宝api的请求频率确实比较高,可以考虑加入延时等代码。

直接打开可以正常打开,但是可能连续多次访问后就被BAN了?你可以一直访问吗? 我今天用本机时间抢了一次,在点击"我要预约"按钮后就卡住了,然后还退出到了登录界面(可能是因为我从7点就开始挂的关系) btw,在小红书看到说网页改版了?虽然我自己去问了一下,应该只是他不懂瞎猜的。如果您方便可以看看。 https://www.xiaohongshu.com/discovery/item/621d6501000000000102c538?xhsshare=CopyLink&appuid=5ddf6cbf00000000010042cd&apptime=1646114749 mmexport1646114733283.jpgmmexport1646114736614.jpg

网址应该是二月初的时候改的,原本预约界面的网址只包含预约的时间,改版之后包含预约时间,时间戳,md5生成的sign字符串。这个可以通过post的方式提前请求得到。有了这个网址就可以直接跳转到预约确认界面(虽然这并不容易)

Jazzwind commented 2 years ago

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

淘宝api的网址在浏览器中能正常打开吗?一般情况下会出现一行json文本内容。脚本中对淘宝api的请求频率确实比较高,可以考虑加入延时等代码。

直接打开可以正常打开,但是可能连续多次访问后就被BAN了?你可以一直访问吗? 我今天用本机时间抢了一次,在点击"我要预约"按钮后就卡住了,然后还退出到了登录界面(可能是因为我从7点就开始挂的关系) btw,在小红书看到说网页改版了?虽然我自己去问了一下,应该只是他不懂瞎猜的。如果您方便可以看看。

网址应该是二月初的时候改的,原本预约界面的网址只包含预约的时间,改版之后包含预约时间,时间戳,md5生成的sign字符串。这个可以通过post的方式提前请求得到。有了这个网址就可以直接跳转到预约确认界面(虽然这并不容易)

他指的确实是3.1号,(我认为他并不懂网页/编程),感觉只是自己的猜测。我和他私聊了一下,他说的意思是“原本早上可以提前看到能有多少人可以预约,但是今天早上看不到有多少人可以预约了。所以判断'‘里地址’,(应该就是只预约确认界面),发生了变化,让黄牛的程序无法运行了”,不过这个和我们这个程序没有关系咯,反正我们这个是模拟人的点击的。

但是我今天确实是看着他10点整点击了,但是直接就卡死了,没能进入到选哪一天的那个界面。

我们可能能够直接转跳至预约确认的界面吗?

keyuxing commented 2 years ago

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

淘宝api的网址在浏览器中能正常打开吗?一般情况下会出现一行json文本内容。脚本中对淘宝api的请求频率确实比较高,可以考虑加入延时等代码。

直接打开可以正常打开,但是可能连续多次访问后就被BAN了?你可以一直访问吗? 我今天用本机时间抢了一次,在点击"我要预约"按钮后就卡住了,然后还退出到了登录界面(可能是因为我从7点就开始挂的关系) btw,在小红书看到说网页改版了?虽然我自己去问了一下,应该只是他不懂瞎猜的。如果您方便可以看看。

网址应该是二月初的时候改的,原本预约界面的网址只包含预约的时间,改版之后包含预约时间,时间戳,md5生成的sign字符串。这个可以通过post的方式提前请求得到。有了这个网址就可以直接跳转到预约确认界面(虽然这并不容易)

他指的确实是3.1号,(我认为他并不懂网页/编程),感觉只是自己的猜测。我和他私聊了一下,他说的意思是“原本早上可以提前看到能有多少人可以预约,但是今天早上看不到有多少人可以预约了。所以判断'‘里地址’,(应该就是只预约确认界面),发生了变化,让黄牛的程序无法运行了”,不过这个和我们这个程序没有关系咯,反正我们这个是模拟人的点击的。

但是我今天确实是看着他10点整点击了,但是直接就卡死了,没能进入到选哪一天的那个界面。

我们可能能够直接转跳至预约确认的界面吗?

我前几天问的就是这个问题...

我现在得到了预约确认界面的网址格式,如下: https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate=date&t=timestamp&s=sign

其中: date为预约日期,如2022-03-08; timestamp为时间戳,精确到毫秒,如1646124402000; sign为md5生成的32位字符串。

与@01miaom刚才说的一致,但问题是我对这方面了解较少,不会通过post的方式提前请求得到timestamp和sign这两个参数,否则就可以直接通过这个链接跳转到对应日期的预约界面了,不需要先加载房间列表。

01miaom commented 2 years ago

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

淘宝api的网址在浏览器中能正常打开吗?一般情况下会出现一行json文本内容。脚本中对淘宝api的请求频率确实比较高,可以考虑加入延时等代码。

直接打开可以正常打开,但是可能连续多次访问后就被BAN了?你可以一直访问吗? 我今天用本机时间抢了一次,在点击"我要预约"按钮后就卡住了,然后还退出到了登录界面(可能是因为我从7点就开始挂的关系) btw,在小红书看到说网页改版了?虽然我自己去问了一下,应该只是他不懂瞎猜的。如果您方便可以看看。

网址应该是二月初的时候改的,原本预约界面的网址只包含预约的时间,改版之后包含预约时间,时间戳,md5生成的sign字符串。这个可以通过post的方式提前请求得到。有了这个网址就可以直接跳转到预约确认界面(虽然这并不容易)

他指的确实是3.1号,(我认为他并不懂网页/编程),感觉只是自己的猜测。我和他私聊了一下,他说的意思是“原本早上可以提前看到能有多少人可以预约,但是今天早上看不到有多少人可以预约了。所以判断'‘里地址’,(应该就是只预约确认界面),发生了变化,让黄牛的程序无法运行了”,不过这个和我们这个程序没有关系咯,反正我们这个是模拟人的点击的。 但是我今天确实是看着他10点整点击了,但是直接就卡死了,没能进入到选哪一天的那个界面。 我们可能能够直接转跳至预约确认的界面吗?

我前几天问的就是这个问题...

我现在得到了预约确认界面的网址格式,如下: https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate=date&t=timestamp&s=sign

其中: date为预约日期,如2022-03-08; timestamp为时间戳,精确到毫秒,如1646124402000; sign为md5生成的32位字符串。

与@01miaom刚才说的一致,但问题是我对这方面了解较少,不会通过post的方式提前请求得到timestamp和sign这两个参数,否则就可以直接通过这个链接跳转到对应日期的预约界面了,不需要先加载房间列表。

这部分代码我之前有尝试写过,不过存在法律风险,而且效果没有预想的好,就从仓库中删除了。可以参考一下:

c=browser.get_cookies()
cookies={}
for cookie in c:
    cookies[cookie['name']]=cookie['value']
#print(cookies)
head={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36' 
}
r=requests.post(url="https://hk.sz.gov.cn:8118/districtHousenumLog/getList",headers=head,cookies=cookies)
jsons=json.loads(r.text)
date=jsons['data'][6]['date']
timespan=jsons['data'][6]['timespan']
sign=jsons['data'][6]['sign']
orderUrl="https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate="+date+"&t="+str(timespan)+"&s="+sign
print(orderUrl)
keyuxing commented 2 years ago

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

淘宝api的网址在浏览器中能正常打开吗?一般情况下会出现一行json文本内容。脚本中对淘宝api的请求频率确实比较高,可以考虑加入延时等代码。

直接打开可以正常打开,但是可能连续多次访问后就被BAN了?你可以一直访问吗? 我今天用本机时间抢了一次,在点击"我要预约"按钮后就卡住了,然后还退出到了登录界面(可能是因为我从7点就开始挂的关系) btw,在小红书看到说网页改版了?虽然我自己去问了一下,应该只是他不懂瞎猜的。如果您方便可以看看。

网址应该是二月初的时候改的,原本预约界面的网址只包含预约的时间,改版之后包含预约时间,时间戳,md5生成的sign字符串。这个可以通过post的方式提前请求得到。有了这个网址就可以直接跳转到预约确认界面(虽然这并不容易)

他指的确实是3.1号,(我认为他并不懂网页/编程),感觉只是自己的猜测。我和他私聊了一下,他说的意思是“原本早上可以提前看到能有多少人可以预约,但是今天早上看不到有多少人可以预约了。所以判断'‘里地址’,(应该就是只预约确认界面),发生了变化,让黄牛的程序无法运行了”,不过这个和我们这个程序没有关系咯,反正我们这个是模拟人的点击的。 但是我今天确实是看着他10点整点击了,但是直接就卡死了,没能进入到选哪一天的那个界面。 我们可能能够直接转跳至预约确认的界面吗?

我前几天问的就是这个问题... 我现在得到了预约确认界面的网址格式,如下: https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate=date&t=timestamp&s=sign 其中: date为预约日期,如2022-03-08; timestamp为时间戳,精确到毫秒,如1646124402000; sign为md5生成的32位字符串。 与@01miaom刚才说的一致,但问题是我对这方面了解较少,不会通过post的方式提前请求得到timestamp和sign这两个参数,否则就可以直接通过这个链接跳转到对应日期的预约界面了,不需要先加载房间列表。

这部分代码我之前有尝试写过,不过存在法律风险,而且效果没有预想的好,就从仓库中删除了。可以参考一下:

c=browser.get_cookies()
cookies={}
for cookie in c:
    cookies[cookie['name']]=cookie['value']
#print(cookies)
head={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36' 
}
r=requests.post(url="https://hk.sz.gov.cn:8118/districtHousenumLog/getList",headers=head,cookies=cookies)
jsons=json.loads(r.text)
date=jsons['data'][6]['date']
timespan=jsons['data'][6]['timespan']
sign=jsons['data'][6]['sign']
orderUrl="https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate="+date+"&t="+str(timespan)+"&s="+sign
print(orderUrl)
截屏2022-03-01 18 00 53

多谢大佬!不过我刚才试了一下,好像这个网址失效了?现在返回的是404。

janiceng628 commented 2 years ago

print(orderUrl)

我试了貌似没有这个问题,但不知道这一part要怎样和原来的code衔接TAT

janiceng628 commented 2 years ago

可以将按钮点击部分代码替换成这个,用链接的方式跳转到对应的页面 url="https://hk.sz.gov.cn:8118/passInfo/detail" browser.get(url) 螢幕擷取畫面 2022-02-25 225107

你好你好,现在网站一开始会出现这个,请问要加入什么code才能自动点击“确定”按钮呢?谢谢!

你好,请问你加了这个关闭弹窗的代码后有顺利抢到票吗?谢谢

没有哇,连续十几天了,每天一绝望。这个弹窗因为可以是10点前处理好的,所以个人感觉这个它的阻碍性不大。

keyuxing commented 2 years ago

print(orderUrl)

我试了貌似没有这个问题,但不知道这一part要怎样和原来的code衔接TAT

你运行这段代码后能输出orderUrl吗?

Zhang-JK commented 2 years ago

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

淘宝api的网址在浏览器中能正常打开吗?一般情况下会出现一行json文本内容。脚本中对淘宝api的请求频率确实比较高,可以考虑加入延时等代码。

直接打开可以正常打开,但是可能连续多次访问后就被BAN了?你可以一直访问吗? 我今天用本机时间抢了一次,在点击"我要预约"按钮后就卡住了,然后还退出到了登录界面(可能是因为我从7点就开始挂的关系) btw,在小红书看到说网页改版了?虽然我自己去问了一下,应该只是他不懂瞎猜的。如果您方便可以看看。

网址应该是二月初的时候改的,原本预约界面的网址只包含预约的时间,改版之后包含预约时间,时间戳,md5生成的sign字符串。这个可以通过post的方式提前请求得到。有了这个网址就可以直接跳转到预约确认界面(虽然这并不容易)

他指的确实是3.1号,(我认为他并不懂网页/编程),感觉只是自己的猜测。我和他私聊了一下,他说的意思是“原本早上可以提前看到能有多少人可以预约,但是今天早上看不到有多少人可以预约了。所以判断'‘里地址’,(应该就是只预约确认界面),发生了变化,让黄牛的程序无法运行了”,不过这个和我们这个程序没有关系咯,反正我们这个是模拟人的点击的。 但是我今天确实是看着他10点整点击了,但是直接就卡死了,没能进入到选哪一天的那个界面。 我们可能能够直接转跳至预约确认的界面吗?

我前几天问的就是这个问题... 我现在得到了预约确认界面的网址格式,如下: https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate=date&t=timestamp&s=sign 其中: date为预约日期,如2022-03-08; timestamp为时间戳,精确到毫秒,如1646124402000; sign为md5生成的32位字符串。 与@01miaom刚才说的一致,但问题是我对这方面了解较少,不会通过post的方式提前请求得到timestamp和sign这两个参数,否则就可以直接通过这个链接跳转到对应日期的预约界面了,不需要先加载房间列表。

这部分代码我之前有尝试写过,不过存在法律风险,而且效果没有预想的好,就从仓库中删除了。可以参考一下:

c=browser.get_cookies()
cookies={}
for cookie in c:
    cookies[cookie['name']]=cookie['value']
#print(cookies)
head={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36' 
}
r=requests.post(url="https://hk.sz.gov.cn:8118/districtHousenumLog/getList",headers=head,cookies=cookies)
jsons=json.loads(r.text)
date=jsons['data'][6]['date']
timespan=jsons['data'][6]['timespan']
sign=jsons['data'][6]['sign']
orderUrl="https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate="+date+"&t="+str(timespan)+"&s="+sign
print(orderUrl)
截屏2022-03-01 18 00 53

多谢大佬!不过我刚才试了一下,好像这个网址失效了?现在返回的是404。

我这里这个网址也失效了,现在知道预约的接口但拿不到里面的参数😭

qd-xiaowang commented 2 years ago

看起来是在淘宝时赋予的那些请求对宝,可能是反代码或者其他原因。可以把请求时间这部分的改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

一直无法调用,我最多能坚持 2、3 分钟才能出用。但是在改第二行的时候。已经遇到了类似的问题。准确来说,因为一旦提前点了“我要预约”按钮,整个程序就直接报错就寄了。

淘宝的在浏览器中正常打开会播放json文本内容。

直接打开可以正常打开,可能连续多次访问访问后就被BAN了?退出到登录界面(可能是因为我从7点就挂的) 顺便说一句,在小红书上看到关系说网页只是改版了?虽然我自己去问了,应该开始了他不懂瞎猜的。方便可以看看。

本来应该是二月初的改期网址,原本预约界面的改正时间,包含了之后的预约时间,只包含后版的五月版的签名。网址就可以直接跳转到预约确认界面(虽然这并不容易)

他的是3.1号,(我认为他并不懂网页/程序),只是自己的猜测。可以预约,但今天早上有多少人可以预约。 但是今天确实是看他10点整点击了,直接就卡死了,没能进入那个界面到选一天的 。直接能够转跳至预约确认的界面吗?

我前几天问的这个 问题...其中:日期为预约,如202-03-08时间戳为 164222000 ;时间戳为164222000;签名为md5生成的精确到32000位;签名为md5生成的字符串。第一方面的通知和通知,不会通过这个日期的提前通知给这个房间的提前请求,否则就可以直接通过日期的提前通知,不需要列表。

这部分代码我之前有试写过,但存在法律风险,而且效果没有预想的好,就从仓库中删除了。

c=browser.get_cookies()
cookies={}
for cookie in c:
    cookies[cookie['name']]=cookie['value']
#print(cookies)
head={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36' 
}
r=requests.post(url="https://hk.sz.gov.cn:8118/districtHousenumLog/getList",headers=head,cookies=cookies)
jsons=json.loads(r.text)
date=jsons['data'][6]['date']
timespan=jsons['data'][6]['timespan']
sign=jsons['data'][6]['sign']
orderUrl="https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate="+date+"&t="+str(timespan)+"&s="+sign
print(orderUrl)
截屏2022-03-01 18 00 53

多谢大佬!不过我刚才试了一下,好像这​​个网址无效了?现在返回的是404。

我这里这个网址也无效了,现在知道的接口但拿不到里面的参数😭

有最新的操作流程吗

Zhang-JK commented 2 years ago

看起来是在淘宝时赋予的那些请求对宝,可能是反代码或者其他原因。可以把请求时间这部分的改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

一直无法调用,我最多能坚持 2、3 分钟才能出用。但是在改第二行的时候。已经遇到了类似的问题。准确来说,因为一旦提前点了“我要预约”按钮,整个程序就直接报错就寄了。

淘宝的在浏览器中正常打开会播放json文本内容。

直接打开可以正常打开,可能连续多次访问访问后就被BAN了?退出到登录界面(可能是因为我从7点就挂的) 顺便说一句,在小红书上看到关系说网页只是改版了?虽然我自己去问了,应该开始了他不懂瞎猜的。方便可以看看。

本来应该是二月初的改期网址,原本预约界面的改正时间,包含了之后的预约时间,只包含后版的五月版的签名。网址就可以直接跳转到预约确认界面(虽然这并不容易)

他的是3.1号,(我认为他并不懂网页/程序),只是自己的猜测。可以预约,但今天早上有多少人可以预约。 但是今天确实是看他10点整点击了,直接就卡死了,没能进入那个界面到选一天的 。直接能够转跳至预约确认的界面吗?

我前几天问的这个 问题...其中:日期为预约,如202-03-08时间戳为 164222000 ;时间戳为164222000;签名为md5生成的精确到32000位;签名为md5生成的字符串。第一方面的通知和通知,不会通过这个日期的提前通知给这个房间的提前请求,否则就可以直接通过日期的提前通知,不需要列表。

这部分代码我之前有试写过,但存在法律风险,而且效果没有预想的好,就从仓库中删除了。

c=browser.get_cookies()
cookies={}
for cookie in c:
    cookies[cookie['name']]=cookie['value']
#print(cookies)
head={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36' 
}
r=requests.post(url="https://hk.sz.gov.cn:8118/districtHousenumLog/getList",headers=head,cookies=cookies)
jsons=json.loads(r.text)
date=jsons['data'][6]['date']
timespan=jsons['data'][6]['timespan']
sign=jsons['data'][6]['sign']
orderUrl="https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate="+date+"&t="+str(timespan)+"&s="+sign
print(orderUrl)
截屏2022-03-01 18 00 53

多谢大佬!不过我刚才试了一下,好像这​​个网址无效了?现在返回的是404。

我这里这个网址也无效了,现在知道的接口但拿不到里面的参数😭

有最新的操作流程吗

没,repo里写的基本就可以用

gong56 commented 2 years ago

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

淘宝api的网址在浏览器中能正常打开吗?一般情况下会出现一行json文本内容。脚本中对淘宝api的请求频率确实比较高,可以考虑加入延时等代码。

直接打开可以正常打开,但是可能连续多次访问后就被BAN了?你可以一直访问吗? 我今天用本机时间抢了一次,在点击"我要预约"按钮后就卡住了,然后还退出到了登录界面(可能是因为我从7点就开始挂的关系) btw,在小红书看到说网页改版了?虽然我自己去问了一下,应该只是他不懂瞎猜的。如果您方便可以看看。

网址应该是二月初的时候改的,原本预约界面的网址只包含预约的时间,改版之后包含预约时间,时间戳,md5生成的sign字符串。这个可以通过post的方式提前请求得到。有了这个网址就可以直接跳转到预约确认界面(虽然这并不容易)

他指的确实是3.1号,(我认为他并不懂网页/编程),感觉只是自己的猜测。我和他私聊了一下,他说的意思是“原本早上可以提前看到能有多少人可以预约,但是今天早上看不到有多少人可以预约了。所以判断'‘里地址’,(应该就是只预约确认界面),发生了变化,让黄牛的程序无法运行了”,不过这个和我们这个程序没有关系咯,反正我们这个是模拟人的点击的。 但是我今天确实是看着他10点整点击了,但是直接就卡死了,没能进入到选哪一天的那个界面。 我们可能能够直接转跳至预约确认的界面吗?

我前几天问的就是这个问题... 我现在得到了预约确认界面的网址格式,如下: https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate=date&t=timestamp&s=sign 其中: date为预约日期,如2022-03-08; timestamp为时间戳,精确到毫秒,如1646124402000; sign为md5生成的32位字符串。 与@01miaom刚才说的一致,但问题是我对这方面了解较少,不会通过post的方式提前请求得到timestamp和sign这两个参数,否则就可以直接通过这个链接跳转到对应日期的预约界面了,不需要先加载房间列表。

这部分代码我之前有尝试写过,不过存在法律风险,而且效果没有预想的好,就从仓库中删除了。可以参考一下:

c=browser.get_cookies()
cookies={}
for cookie in c:
    cookies[cookie['name']]=cookie['value']
#print(cookies)
head={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36' 
}
r=requests.post(url="https://hk.sz.gov.cn:8118/districtHousenumLog/getList",headers=head,cookies=cookies)
jsons=json.loads(r.text)
date=jsons['data'][6]['date']
timespan=jsons['data'][6]['timespan']
sign=jsons['data'][6]['sign']
orderUrl="https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate="+date+"&t="+str(timespan)+"&s="+sign
print(orderUrl)

您好,请问这个链接怎么提取出来的districtHousenumLog/getList,有新的链接吗

01miaom commented 2 years ago

看起来好像是对淘宝授时的api请求超时,可能是反爬或者其他原因。可以把请求时间这部分的代码改成调用系统时间。 import time timeArray=time.localtime(int(time.time()))

淘宝api好像没法一直调用,我最多坚持2,3分钟就会出问题。是while下面第二行。已经在那一行遇到了两种报错。改成用自己系统时间了。但是感觉可能不太准确,因为一旦提前点了"我要预约"按钮,整个程序就直接报错就寄了。

淘宝api的网址在浏览器中能正常打开吗?一般情况下会出现一行json文本内容。脚本中对淘宝api的请求频率确实比较高,可以考虑加入延时等代码。

直接打开可以正常打开,但是可能连续多次访问后就被BAN了?你可以一直访问吗? 我今天用本机时间抢了一次,在点击"我要预约"按钮后就卡住了,然后还退出到了登录界面(可能是因为我从7点就开始挂的关系) btw,在小红书看到说网页改版了?虽然我自己去问了一下,应该只是他不懂瞎猜的。如果您方便可以看看。

网址应该是二月初的时候改的,原本预约界面的网址只包含预约的时间,改版之后包含预约时间,时间戳,md5生成的sign字符串。这个可以通过post的方式提前请求得到。有了这个网址就可以直接跳转到预约确认界面(虽然这并不容易)

他指的确实是3.1号,(我认为他并不懂网页/编程),感觉只是自己的猜测。我和他私聊了一下,他说的意思是“原本早上可以提前看到能有多少人可以预约,但是今天早上看不到有多少人可以预约了。所以判断'‘里地址’,(应该就是只预约确认界面),发生了变化,让黄牛的程序无法运行了”,不过这个和我们这个程序没有关系咯,反正我们这个是模拟人的点击的。 但是我今天确实是看着他10点整点击了,但是直接就卡死了,没能进入到选哪一天的那个界面。 我们可能能够直接转跳至预约确认的界面吗?

我前几天问的就是这个问题... 我现在得到了预约确认界面的网址格式,如下: https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate=date&t=timestamp&s=sign 其中: date为预约日期,如2022-03-08; timestamp为时间戳,精确到毫秒,如1646124402000; sign为md5生成的32位字符串。 与@01miaom刚才说的一致,但问题是我对这方面了解较少,不会通过post的方式提前请求得到timestamp和sign这两个参数,否则就可以直接通过这个链接跳转到对应日期的预约界面了,不需要先加载房间列表。

这部分代码我之前有尝试写过,不过存在法律风险,而且效果没有预想的好,就从仓库中删除了。可以参考一下:

c=browser.get_cookies()
cookies={}
for cookie in c:
    cookies[cookie['name']]=cookie['value']
#print(cookies)
head={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36' 
}
r=requests.post(url="https://hk.sz.gov.cn:8118/districtHousenumLog/getList",headers=head,cookies=cookies)
jsons=json.loads(r.text)
date=jsons['data'][6]['date']
timespan=jsons['data'][6]['timespan']
sign=jsons['data'][6]['sign']
orderUrl="https://hk.sz.gov.cn:8118/passInfo/confirmOrder?checkinDate="+date+"&t="+str(timespan)+"&s="+sign
print(orderUrl)

您好,请问这个链接怎么提取出来的districtHousenumLog/getList,有新的链接吗

页面改版后这个方法已经失效了,新版可能不再采用请求的方式获取对应的值。但是项目中的主要代码仍然可以正常使用。