Python Forum
Noob scraping with lxml check stock - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Web Scraping & Web Development (https://python-forum.io/forum-13.html)
+--- Thread: Noob scraping with lxml check stock (/thread-30942.html)



Noob scraping with lxml check stock - cwe6279 - Nov-14-2020

I am interested in using lxml Python 3 and just chose what I thought would be an easy to follow tutorial... I am simply trying to see if a button exists for add to cart to check inventory so I picked a common one "Amazon" and a random item to check.

From that I just wanted to confirm if it was in stock but I have struggled to get anything out of the below code and I am sure it's something obvious but banging my head at this point


page = requests.get('https://www.amazon.com/Sonos-Move-Battery-powered-Bluetooth-built/dp/B07W95RBZM/ref=gbps_img___706175cd?smid=A$
tree  = lxml.html.fromstring(page.content)
instock = tree.xpath('//span[@id="submit.add-to-cart-announce"]/text()')
print('AmazonStock:', instock)
at this point I'd be happy to simply pull some text off a div or span in it

thanks for any pointers

EDIT:
So it occurred to me that maybe this is limited because JS generated HTML has to be interpreted by the browser- for anyone else who may stumble across this, search Amazon, Selenium in the forums.


RE: Noob scraping with lxml check stock - Aspire2Inspire - Nov-15-2020

Its not essential to use Selenium, you could also use something called splash.

But for a beginner, i would suggest using a library called requests_HTML. It loads JS on a webpage and is easy to use!

Goodluck