
Set up a python web scraping workflow by installing Anaconda, creating an environment for scrapy in Anaconda Navigator, installing scrapy, pep8, pylint, and using VS Code with the Python extension.
Implement update query and get inscriptions requests in Scrapy by overriding start_requests. Send a post with a JSON payload, configure headers, and set a callback to process the response.
Determine if a page needs JavaScript, then use Splash or Selenium to render HTML and scrape listing addresses and descriptions with Scrapy, building absolute URLs and passing meta data.
Increase the virtual machine memory and CPU for splash in docker, then configure splash with restart always and port mapping to reduce 504 gateway timeout errors when scraping.
Learn to bypass 504 gateway timeout by optimizing splash scripts for Scrapy and Splash. Disable images and JavaScript, abort CSS requests, and return HTML to speed up scraping.
Explore scraping the Steam official store to pull top selling games, including image URL, game name, platform, release date, user reviews, and pricing, by building a Scrapy spider.
define each data point as a field in items.py, instantiate the steam item, and extract game url, image url, game name, release date, and pricing with XPath.
Process the review summary field by removing HTML tags and converting to a string, then extract supported platforms from class attributes using map compose and item loader.
Learn how to render templates in Flask with render_template, set up the templates folder, and pass variables and lists using Jinja to create dynamic HTML.
Modify a Flask app to render index.html with a games list, build a Bootstrap grid of three-card rows, and display each game's image, name, platforms, and URL.
Master pagination techniques for web scraping listings across pages. Decode and update the search query state to inject the next page number and build the new URL with Scrapy.
Design a Tkinter-based desktop app to run scrapy spiders, allowing dynamic spider selection, feed type choice (json or csv), and inputs for output path and dataset name.
Load dynamic spiders into a desktop app using spider loader to populate a dropdown, then capture chosen spider and prepare execution with the execute button.
Hi there & welcome to the most advanced online resource on Web Scraping with Python using Scrapy & Splash. This course is fully project-based means pretty much on each section we gonna scrape a different website & tackle a different web scraping dilemma also rather than focusing on the basics of Scrapy & Splash we gonna dive straight forward into real-world projects, this also means that this course is absolutely not suitable for beginners with no background on web scraping, Scrapy, Splash & XPath expressions.
---This courses covers a variety of topics such as:---
Requests chaining, like how the requests must be sent in a certain order otherwise they won't be fulfilled at all.
How to analyze a website before scraping it, this is an important step to do since it helps a lot in choosing the right tools to scrape a website & it literally has a huge impact on the performance of your final product.
How to optimize Splash scripts by reducing/aborting all the unnecessary requests that have nothing to do with the data points you're going to scrape, this is an important thing to do if you care about the performance of Splash as it is the key to bypass 504 Gateway Timeout HTTP errors in Splash.
We gonna also cover how to build a Cluster of Splash instances with a load balancer(HAProxy) rather than having one fully overloaded Splash instance this also helps in bypassing 504 Gateway Timeout errors.
Heavy data processing, you'll understand how Input & Output processors work so you'll be able to use them in order to clean the scraped data points as this will ensure the quality of your feeds.
We'll use ScrapyRT (Scrapy RealTime) to build spiders that can fetch data in real-time.
Showcase the scraped data points in a minimalist web app using ScrapyRT & Flask, this is extremely helpful for web scraping freelancers.
Bypass Google ReCaptcha, please don't get me wrong on this point, I don't mean that we will solve it using Scrapy, instead, I'm gonna show you a technique that I use frequently to fool websites and let them think that the request is sent using a browser & was performed by a human being!
Build clean & well-structured spiders
Finally, we gonna build a Desktop app using Tkinter, the app will fetch & execute all the available spiders in your Scrapy project, you can also choose the feed type, feed location & name, this is also extremely helpful & important if you're a web scraping freelancer, it is always a good idea to deliver to your client a desktop app rather than installing Scrapy on his machine & stuff like that.
This course is straight to the point, there's no "foobar" or "quotes to toscrape dot com" as other courses do so make sure you have a good level of focus & lot of determination & motivation.
By the end of this course, you'll sharpen your skills in web scraping using Scrapy & Splash, you'll be able to write clean & high performing spiders that differentiate you from others, this also means if you're a web scraping freelancer you'll get more offers since you can deliver "User-Friendly" spiders with a Graphical User Interface(GUI) or web apps that fetch data in real-time.
So join me on this course & let's harvest the web together!