pcomputo / whole-foods-delivery-slot Goto Github PK
View Code? Open in Web Editor NEWAutomated script for Whole Foods and Amazon Fresh delivery slot
License: Apache License 2.0
Automated script for Whole Foods and Amazon Fresh delivery slot
License: Apache License 2.0
Great scripts and truly helpful! Thank you. I successfully ran whole_foods_delivery_slot_chrome and it works like a charm. So, I do not think it's my environment.
Issue is with amazon_fresh_delivery_slot_chrome which I executed and see via a print statement that an exception is always thrown.
I am in Windows 10 Enterprise, V10.0.16299 and Chrome Version 80.0.3987.162 (Official Build) (64-bit)
This is from powershell:
prompt> python .\amazon_fresh_delivery_slot_chrome.py
DevTools listening on ws://127.0.0.1:49373/devtools/browser/7a3a703d-71d5-419a-b325-b9e78c886afd
.\amazon_fresh_delivery_slot_chrome.py:18: UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("html.parser"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.
The code that caused this warning is on line 18 of the file .\amazon_fresh_delivery_slot_chrome.py. To get rid of this warning, pass the additional argument 'features="html.parser"' to the BeautifulSoup constructor.
soup = bs4.BeautifulSoup(html)
refreshed
.\amazon_fresh_delivery_slot_chrome.py:26: UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("html.parser"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.
The code that caused this warning is on line 26 of the file .\amazon_fresh_delivery_slot_chrome.py. To get rid of this warning, pass the additional argument 'features="html.parser"' to the BeautifulSoup constructor.
soup = bs4.BeautifulSoup(html)
In Exception
refreshed
In Exception
refreshed
In Exception
and then it just proceeds like this. I added the print('In Expcetion') statement.
Not sure this a problem. Here's what I'm getting:
:Whole-Foods-Delivery-Slot-master $ python whole_foods_delivery_autobuy.py
refreshed
SLOTS OPEN!
Found a slot but it got taken, run script again.
Traceback (most recent call last):
File "whole_foods_delivery_autobuy.py", line 141, in
getWFSlot('https://www.amazon.com/gp/buy/shipoptionselect/handlers/display.html?hasWorkingJavascript=1')
File "whole_foods_delivery_autobuy.py", line 138, in getWFSlot
autoCheckout(driver)
File "whole_foods_delivery_autobuy.py", line 42, in autoCheckout
slot_continue_button = driver.find_element_by_xpath('/html/body/div[5]/div[1]/div/div[2]/div/div/div/div/div[2]/div[3]/div/span/span/span/input')
File "/Users/johnwhitty/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/remote/webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "/Users/johnwhitty/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
'value': value})['value']
File "/Users/johnwhitty/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Users/johnwhitty/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[5]/div[1]/div/div[2]/div/div/div/div/div[2]/div[3]/div/span/span/span/input"}
(Session info: chrome=81.0.4044.122)
Hi there,
First off, thanks for putting this script together. I got this error consistently. I wonder if you or anyone else is getting it too.
whole_foods_delivery_autobuy.py throws an exception after it finds an open slot. Below is the trace. It looks like the button the script is trying to click is not clickable. I don't have the page source handy but I'll save it next time it fails.
-Al
SLOTS OPEN!
Traceback (most recent call last):
File "whole_foods_delivery_autobuy.py", line 120, in
getWFSlot('https://www.amazon.com/gp/buy/shipoptionselect/handlers/display.html?hasWorkingJavascript=1')
File "whole_foods_delivery_autobuy.py", line 103, in getWFSlot
autoCheckout(driver)
File "whole_foods_delivery_autobuy.py", line 20, in autoCheckout
slot_select_button.click()
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element ... is not clickable at point (594, 609). Other element would receive the click:
As titled. Maybe the screenshot of screen 5 is incorrect?
I am pretty sure that I turned on the sound and the program went well. But when it found the slot on the amazon website, there was no sound.
any way to ignore that or click through and have script keep running?
Today I got "2-hour delivery windows", which is not included, looks like there might be "1-hour delivery windows" as well
I successfully scored a delivery, thanks! Do you accept tips?
Suggest rewriting as follows to account for multiple h4s:
next_slot_text = str([x.text for x in soup.findAll('h4', class_ ='ufss-slotgroup-heading-text a-text-normal')])
The script reaches SLOTS OPEN and then hits an exception when it reaches this page, which is very common. When an item(s) goes out of stock and amazon pulls the item from the cart:
SLOTS OPEN!
Found a slot but it got taken, run script again.
Traceback (most recent call last):
File "whole_foods_delivery_autobuy.py", line 130, in
getWFSlot('https://www.amazon.com/gp/buy/shipoptionselect/handlers/display.html?hasWorkingJavascript=1')
File "whole_foods_delivery_autobuy.py", line 127, in getWFSlot
autoCheckout(driver)
File "whole_foods_delivery_autobuy.py", line 33, in autoCheckout
slot_continue_button = driver.find_element_by_xpath('/html/body/div[5]/div[1]/div/div[2]/div/div/div/div/div[2]/div[3]/div/span/span/span/input')
File "/Users/amol/.pyenv/versions/2.7.16/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "/Users/amol/.pyenv/versions/2.7.16/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
'value': value})['value']
File "/Users/amol/.pyenv/versions/2.7.16/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Users/amol/.pyenv/versions/2.7.16/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[5]/div[1]/div/div[2]/div/div/div/div/div[2]/div[3]/div/span/span/span/input"}
(Session info: chrome=81.0.4044.113)
Would it be possible to include an option that changes the audio notification to a visual one? I have Chrome refreshing automatically while minimized to the taskbar in Windows 10 - ideally, I'd want the tab to simply flash in the taskbar when a delivery slot opens up.
(I do a lot of audio recording throughout the day, so an audio notification might interfere with my work or not play at all due to exclusivity such as ASIO.)
'say' is not recognized as an internal or external command,
operable program or batch file.
win 10, chrome.
I added winsound to play a wav file and found a timeslot, thank you
Does the script have the autobuy capability for Amazon fresh? Looks like only for whole foods.
I set this project up as a virtualenv sendbox using MacOS and chromedriver.
I PR'ed the instructions for it into the Readme.md in PR #11 .
Thanks!
With a few tweaks to the notification code (using winsound instead of say), I managed to get the Amazon Fresh code running without apparent issue on windows. It ran fine for several hours and then shortly after midnight earlier today, it notified me that a slot had opened when in fact the output on the screen appeared identical to the way it had prior (which indicated there were no slots). I carefully checked text on screen to see if it matched the "no_open_slots" text and it appeared identical.
I then adding some instrumentation (additional print statements) to see which of the three branches were being triggered and was able to reproduce it. It appeared to be the first branch (the else: section under the first try:).
I checked the xpath for the text on the page and it was nearly identical (only a single digit was different) and tried it again with the revised xpath. It ran for a while and then triggered the false positive again.
Is this a known issue? If not, is there any information I can gather to help debug this?
Thanks!
Hi All, this looks to be a great tool, however, i've never used Python, so any other programming language. Is there a Noob version of this where it would say:
Or any good videos I can view to learn some basics and incorporate this script.
Sorry, i know this is not an issue, however, I wasn't sure how to add comments here.
Thanks again.
Hi.
Using a Mac, and ran the latest commit for
whole_foods_delivery_autobuy.py
(3d289a8)
It worked well, except when it got to the end, it did not perform the final click for "place order." I had to do it manually (manual click worked, and order was placed).
This is what was shown on the screen as the script was running:
refreshed
SLOTS OPEN! 2
Clicked open slot
Selected slot and continued to next page
Payment method selected
Found a slot but it got taken, run script again. 2
Note that I added the "2" after "Found a slot but it got taken, run script again." on line 79 so I could tell where the script stopped.
It's great, I got a slot. But didn't hear any sound notification as claimed
" this automated script can notify you (yes notifies you verbally, so you can go about your tasks)"
Sorry, new here. Learning how to code as we speak, can someone please break it down step by step how to run this script for someone with no knowledge of coding. I would like to run it on firefox. I've download the master folder, just don't know where to go from there. Sorry again for this noob question.
The time slot was found but the 2 hour window wasn't clicked. Here's stacktrace:
SLOTS OPEN! 2
Traceback (most recent call last):
File "whole_foods_delivery_autobuy.py", line 137, in
getWFSlot('https://www.amazon.com/gp/buy/shipoptionselect/handlers/display.html?hasWorkingJavascript=1')
File "whole_foods_delivery_autobuy.py", line 119, in getWFSlot
autoCheckout(driver)
File "whole_foods_delivery_autobuy.py", line 27, in autoCheckout
slot_select_button.click()
File "/Users/amol/.pyenv/versions/2.7.16/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "/Users/amol/.pyenv/versions/2.7.16/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "/Users/amol/.pyenv/versions/2.7.16/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Users/amol/.pyenv/versions/2.7.16/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element ... is not clickable at point (327, 631). Other element would receive the click:
I'm not sure this is an error but my terminal is reading the below. I am on Windows. My Chrome browser launches and otherwise seems to be working (It did not alert me of any time slots opening while I was testing).
λ python whole_foods_delivery_windows.py
DevTools listening on ws://127.0.0.1:51805/devtools/browser/37a6ace0-96cd-438d-8df3-80451acd016c
[8024:7836:0408/224426.450:ERROR:browser_switcher_service.cc(238)] XXX Init()
Traceback (most recent call last):
File "whole_foods_delivery_windows.py", line 50, in
getWFSlot('https://www.amazon.com/gp/buy/shipoptionselect/handlers/display.html?hasWorkingJavascript=1')
File "whole_foods_delivery_windows.py", line 14, in getWFSlot
html = driver.page_sourced
AttributeError: 'WebDriver' object has no attribute 'page_sourced'
Could you elaborate what you mean here?
You'll have to update the path of the this installed webdriver under: python driver = webdriver.Chrome() if its not the default location your OS needs. Similarly, for FireFox python driver = webdriver.FireFox()
I'm not very experienced with Python and I get this error. I already put geckodriver.exe in my PATH.
Traceback (most recent call last):
File "C:/Users/ignam/Desktop/Whole-Foods-Delivery-Slot-master/whole_foods_delivery_slot_firefox.py", line 46, in <module>
getWFSlot('https://www.amazon.com/gp/buy/shipoptionselect/handlers/display.html?hasWorkingJavascript=1')
File "C:/Users/ignam/Desktop/Whole-Foods-Delivery-Slot-master/whole_foods_delivery_slot_firefox.py", line 11, in getWFSlot
driver = webdriver.FireFox()
AttributeError: 'module' object has no attribute 'FireFox'
Thank yo for sharing code,
In my console I do see print statements as below but when checked in amazon site my order wasn't placed.
What could be the reason, any clues?
console statements for whole_foods_delivery_autobuy_windows.py(using the latest code of 11th Apr)
Selected slot and continued to next page
Payment method selected
Order reviewed
Order Placed!
on my linux mint machine I consistently get the following error message " Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-rrTU6M/chromedriver-binary/"
I am sure its something i am not doing right but need to get this working to avoid a trip to the grocery store for i have an underlining condition that makes it very unattractive.
Hey,
when i found the slot. i went to the payment page and after selecting the payment method. It took me back to the Schedule your order page and the slot was no longer available. Please investigate.
Thanks!
Hi, first off, thank you very much for writing this! I am trying to get the windows autobuy script to work, and indeed it seemed to have found an open slot (printed "SLOTS OPEN!"). But then I got the following error:
File "C:\software\wholefoods\Whole-Foods-Delivery-Slot-master\whole_foods_delivery_autobuy_windows.py", line 103, in getWFSlot
if no_slot_pattern == soup.find('h4', class_ ='a-alert-heading').text:
AttributeError: 'NoneType' object has no attribute 'text'
Any help would be appreciated!
Best,
Ben
Can you update the script to allow for automatic checkout? By the time I hear the notification and get back to my computer the slot has been taken. Thank you!
Thanks for the great script!
When I use amazon_fresh_delivery_slot_chrome.py on windows 10 + chrome, I notice there is an open slot but the script doesn't recognize it but keep refreshing the page.
I wonder how I should change the line 30 to make it work.
Thanks!
While I typed in terminal: "virtualenv -p /usr/bin/python2.7 --distribute temp-python"
The terminal shows below:
"virtualenv: error: unrecognized arguments: --distribute"
But! I've successfully installed virtualenv and python...
Please help me with this problem. (By the way, I'm a beginner at learning to code😂)
Thank you so much!
Ran to this using the auto buy. Lucky I was on the computer and was able to click the button and buy right away. Just wanted to report this.
refreshed
refreshed
refreshed
refreshed
refreshed
refreshed
refreshed
refreshed
refreshed
SLOTS OPEN! 2
Traceback (most recent call last):
File "whole_foods_delivery_autobuy.py", line 130, in <module>
getWFSlot('https://www.amazon.com/gp/buy/shipoptionselect/handlers/display.html?hasWorkingJavascript=1')
File "whole_foods_delivery_autobuy.py", line 113, in getWFSlot
autoCheckout(driver)
File "whole_foods_delivery_autobuy.py", line 23, in autoCheckout
slot_select_button.click()
File "/Users/vinny/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "/Users/vinny/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "/Users/vinny/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Users/vinny/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <button aria-pressed="false" class="a-button-text ufss-slot-toggle-native-button" type="button">...</button> is not clickable at point (744, 736). Other element would receive the click: <div class="ufss-overview-container">...</div>
(Session info: chrome=81.0.4044.92)
I'm running amazon_fresh_delivery_slot_chrome.py on Windows10 and got this error:
File "amazon_fresh_delivery_slot_chrome.py", line 62, in
getWFSlot('https://www.amazon.com/gp/buy/shipoptionselect/handlers/display.html?hasWorkingJavascript=1')
File "amazon_fresh_delivery_slot_chrome.py", line 16, in getWFSlot
driver = webdriver.Chrome()
File "/home/XXX/.local/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in init
self.service.start()
File "/home/XXX/.local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 83, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
Trying to run this on windows, ran into the following issues:
Note that I've never previously installed python before trying this repo, so maybe I'm doing some dumb stuff
The readme says to look for python driver = webdriver.Firefox(executable_path="<your-webdriver-path>")
in whole_foods_delivery_autobuy_windows.py but I can't find the line. I tried editing driver = webdriver.Chrome()
to be driver = webdriver.Firefox(executable_path="c/my/path/")
but that didn't work
My process ran fine, i got the alert notification however before i click anything the chrome windwow got closed by itself.
here is what it displayed on the screen when i got the notification
refreshed
SLOTS OPEN 3!
Process finished with exit code 0`
Apologies for the non-python-literate question.
My whole_foods_delivery_slot_chrome.py works fine. Now trying to get the autobuy.py script to work. Here's the error:
Whole-Foods-Delivery-Slot-master $ python whole_foods_delivery_autobuy.py
File "whole_foods_delivery_autobuy.py", line 48
continue
SyntaxError: 'continue' not properly in loop
Possibly this is related to chromedriver which I have no experience with, but when the page opens, I clicl to sign-in, but when I enter text the text is entered into my terminal. Am I missing something?
Thank you so much for this. I am using the chrome version. I have done a tweak there to get the sound to output on windows.
os.system('PowerShell -Command "Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('Delivery available');"')
But my real issue (I am not a coder at all, i've just stumbled through this enough to get it working), is it doesn't seem its compatible with the current way that it looks for availability. It seems to only be looking in one place, and not the multi-day, 1/2hr windows at the same time.
Is it possible to address this or is the current way the only choice? Even if it could be changed to search for the "Limited Availability text in Today/Tomorrow that would be a useful tool for me personally who will take most any slot giving the current situation. Not like I am out of the house anymore.
Thank you so much and be well.
I have successfully found delivery slot twice using this script.
Ironically I didn't "SLOTS OPEN!", didn't hear any sound, I believe the code is not executed at all. However, it can lock the slot when available. I didn't see there's any related logic from the script. How did you achieve it??
I've read the hit job on you that was published in Vice by some moron who fancies himself a journalist but is really a SJW in disguise with an agenda and I wanted to tell you this:
Thank you for what you have done. Don't listen to the haters. There is nothing wrong with using one's programming skills in order to provide food for one's family in time of need. Your work is doubly to be commended for offering the result of it as open source, so that others who might not have the skills to make such a bot themselves could use yours or learn from it.
Don't pay attention to the idiotic claims that you are "creating a digital divide". I guess the same kind of people were opposed to the Internet (after all, not everybody has Internet connection, so not everybody can shop on-line) and even to the cars before that (which put at a "disadvantage" those who don't have a car and can't use it to shop for food).
I personally have to take care of my 84-year old mother, including buying food for both of us during the pandemic. We don't even have Amazon Fresh or Whole Foods in our country, so I can't use your bot directly - but I'll certainly study how it works and how it can be adapted so it can be used for the company here that offers on-line buying of groceries.
Once more, thank you for what you have done.
I've been trying to get the project to checke out and its not quite working. It detects slots, selects the slot but when its on payment method it stops and says
found a slot but it got taken, run script again
it never checks out though, could it be that its because its asking for payment selection instead of a single default payment?
nevermind, the script was conflicting with some telemetry hacks I had for chrome
soup = bs4.BeautifulSoup(html)
Traceback (most recent call last):
File "amazon_fresh_delivery_slot_chrome.py", line 61, in <module>
getWFSlot('https://www.amazon.com/gp/buy/shipoptionselect/handlers/display.html?hasWorkingJavascript=1')
File "amazon_fresh_delivery_slot_chrome.py", line 31, in getWFSlot
no_slots_from_web = driver.find_element_by_xpath('/html/body/div[5]/div/div/div[2]/div/div/form/div[3]/div[4]/div/div[2]/div[2]/div[6]/div/div[2]/div/div[2]/div/div[20]/div[1]/div[1]/div/div/div/span').text
File "C:\Users\Aditya\Desktop\Whole-Foods-Delivery-Slot-master\Whole-Foods-Delivery-Slot-master\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "C:\Users\Aditya\Desktop\Whole-Foods-Delivery-Slot-master\Whole-Foods-Delivery-Slot-master\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 978, in find_element
'value': value})['value']
File "C:\Users\Aditya\Desktop\Whole-Foods-Delivery-Slot-master\Whole-Foods-Delivery-Slot-master\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\Aditya\Desktop\Whole-Foods-Delivery-Slot-master\Whole-Foods-Delivery-Slot-master\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[5]/div/div/div[2]/div/div/form/div[3]/div[4]/div/div[2]/div[2]/div[6]/div/div[2]/div/div[2]/div/div[20]/div[1]/div[1]/div/div/div/span"}
(Session info: chrome=81.0.4044.92)
I am able to sign in and go to the Schedule page, but it crashes after the first refresh of the page with the above stacktrace
OS: Windows 10
Browser: Chrome 81
Driver: ChromeDriver 81
URL: Amazon.com/.../
Amazon Fresh script will give the notification that slots are open after the first refresh, but there are none available.
File "whole_foods_delivery_windows.py", line 20
milliseconds freq = 440
^
SyntaxError: invalid syntax
请问为什么在headers中没有设置cookies,是否需要采用动态cookies构建
This file is not in the zip file I dowloaded.
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[5]/div[1]/div/div[2]/div/div/div/div/div[1]/div[4]/div[2]/div/div[4]/div/div/ul/li/span/span/div/div[2]/span/span/button"}
(Session info: chrome=80.0.3987.163)
Having an issue with autobuy script on Windows with chrome for WF delivery. Attached is the traceback report (it wasn't pasting well).
Any thoughts?
If I print soup.find('h4', class_ ='a-alert-heading').text, the resulting text is :
Due to increased demand, available windows are limited. Please check back later or shop a
Whole Foods Market
near you.
it is not:
'No delivery windows available. New windows are released throughout the day.'
I believe both messages are h4, class='a-alert-heading',. The if statement will never be true.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.