-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nvidia Snatcher Not Working for...Nvidia #267
Comments
Yeah, i had my own bot going only on Nvidia and it didn’t alert either. I was able to actually get one out of pure dumb luck timing tonight. Their site seems to only show stock on the 3080’s page (so no checking for the digital river ID on the search page) and the add to cart button doesn’t load onto the page for a few seconds after page load so you would have to wait and then check for that element. Also at high load it takes a few refreshes to see the add to cart button. It’s a pretty clever system. I highly doubt any bot was notifying anyone today since the update to their website. |
Yup, I had...three different systems that were supposed to notify me, and none of them did. I've been at my computer most of the day and idly checking, but happened to be afk during both of those times. I just know I'm gonna have to wait at least another week to even get a chance. Really annoying. |
I managed to snag a card from the UK store after seeing alerts from snatcher; I'm querying the same API that the browser uses after page load: main...andrewmackrodt:develop#diff-7bb42febfcb7e3eec6d452a107dcbe8dR29 |
I think they implemented rate limiting. I backed off to 5 seconds per page load and set it to a 60 second timeout and that seems to have fixed it. edit: it still times out from time to time. |
for me nvidia germany still doesnt work. I've seen that we have "nvidia" and "nvidia-api" as store now. Do I need to use nvidia-api? |
Could this API be used for checking NVIDIA stock? This fork seems to have a working NVIDIA version combined with the API call instead of the webpage load. Thanks Andrew! https://github.com/andrewmackrodt/nvidia-snatcher/ |
We have |
When the stock had dropped last night I was using "nvidia" (not nvidia-api) and it didn't alert to any cards. It may just be that the site was not loading correctly due to everyone hitting it at once. "nvidia-api" doesn't work anymore from what I understand. It seems that the API key is no longer valid, and when I disable headless mode (checked again just now) I see it constantly opening pages that return 403 though the log says "out of stock". I haven't seen any commits since last night that change how nvidia and nvidia-api work so I don't think it's resolved. As far as the timeouts, in my observation they only start happening once the script has been going for a couple minutes. There may be some rate limiting happening from nvidia. The script is also loading 2 links per card, and the time between those checks does not seem to respect any min/max timers set. The min/max timer only seems to come in to play once all checks for the nvidia store are completed. For example, I set a min of 20000 and max of 30000 (20-30 seconds). For the 3080 FE, it still hits the nvidia site twice in a 3 second period. Then it waits 20-30 seconds and does the same thing. It may help if there was a way to also specify minimum time between querying the same store. I tried IN_STOCK_WAIT_TIME but that didn't seem to be what I'm looking for, I think that delay only comes in to play once something is found to be "in stock". |
As far as I know, no, but it's hard to tell. Nvidia didn't have a drop today so no way to test, and I think it just shows "out of stock" regardless. |
@tsumeone the API key isn't valid anymore, it stopped working sometime Wednesday afternoon. see #254 At the same time they updated their site to slightly alter how the add to cart works so now the out of stock element is still on the page (but hidden) when there is stock. It also takes a few moments for the add to cart to show up (seems like a separate API call but I wasn't able to find it in the networking call list. It seems like @andrewmackrodt seemed to have an idea of the API to query) The API @AdriaanDeVos provided above seems to return stock correctly with no need for an API key (https://api-prod.nvidia.com/direct-sales-shop/DR/products/en_us/USD/{productId}) but I'm not sure if they are updating this information when the stock is available as there were no drops today to test against. |
Example in
|
@brybry77104 The API call I have provided above is the one that the nvidia frontend queries with javascript. This has been implemented by andrew in his fork. @geman220 I think this is still a valid issue as the nvidia-api does not seem to work on my end (see screenshot) |
I still getting the perpetual timeouts on the Snatcher after like 20 or 30 pings. Can I get a little help here? |
Yeah nvidia doesn't work, there was a large drop at 9/27 12:30AM EST that it completely missed |
That's good to know, as 9/27 is 2 days in the future! I'll stay up late. 👍 |
Nvidia's site is just horrendously slow. Here's a screenshot I just took from my browser of how long it took to load the 3090 page. I'm on 1GB fiber, so it's definitely not my connection. The problem here is that the element that contains the pricing and link to add to cart is loaded after the page itself because it comes from a separate API request. The API request is also overly cached and horrendously inconsistent. So since the page often isn't getting the button until 30+ seconds later and the button itself may be incorrect due to their API caching, Nvidia's site is a clusterfuck to automate scraping of. The default They said they were making things harder for bots. Unfortunately it seems that they made it harder for bots and humans alike. |
I hadn't noticed the button loading later, probably because I've never actually seen anything in-stock at the Nvidia store in my life. But the changes proposed in #281 may help out here? |
The console says "OUT OF STOCK" but that doesn't mean it's actually searching correctly. If I disable headless mode I can see it repeatedly opening windows that go to 403. It's not actually receiving any stock information that I can see if it's getting 403 every time. I think the "out of stock" message in console is in error, really it should be saying it failed to check. I think nvidia-api is not functioning. Please disable headless mode and see if you have the same result. It's accessing this URL (using an invalid API key): https://api.digitalriver.com/v1/shoppers/me/products/5438481700/inventory-status?&apiKey=9485fa7b159e42edb08a83bde0d83dia&locale=en_us&_=1601051901846 Getting this message: https://i.imgur.com/xAOlhRN.png Console shows this: https://i.imgur.com/sjtHEqY.png |
Yea, the I think what they did is set up a proxy at https://api-prod.nvidia.com/direct-sales-shop/DR/products/en_us/USD/5438481700 Notice the |
Should we disable nvidia-api in the .env file, or does it not matter either way? |
Nvidia changed their page so that "Out of Stock" is always displayed even when a buy button is available. As a result, I don't think the snatcher knows when there is stock. I missed two drops today (one in the afternoon and one about an hour ago) because no notifications were sent and no alarm went off. The latest apparently was up for 15 minutes, so there's some bug as to why it's missing it. I've been getting notifications for other sites (though mostly false alarms).
The text was updated successfully, but these errors were encountered: