{"repo":"jpjacobpadilla/Stealth-Requests","free":true,"listed":false,"github":"https://github.com/jpjacobpadilla/Stealth-Requests","clone":"git clone https://github.com/jpjacobpadilla/Stealth-Requests.git","description":"Undetected web-scraping & seamless HTML parsing in Python!","language":"Python","stars":558,"topics":["python","http-client","data","html-parsing","http-requests","python-scraping","python-web-scraper","requests","web-crawler","web-scraping"],"license":"MIT","category":"scrapers-browser-automation","readme_excerpt":"The Easiest Way to Scrape the Web Features - Realistic HTTP Requests: - Mimics Chrome browser for undetected scraping using curl cffi - Automatically rotates User Agents between requests - Tracks and updates the Referer header to simulate realistic request chains - Built-in retry logic for failed requests (e.g. 429, 503, 522) - Faster and Easier Parsing: - Extract emails, phone numbers, images, and links from responses - Automatically extract metadata (title, description, author, etc.) from HTML-based responses - Seamlessly convert responses into Lxml and BeautifulSoup objects for more parsing - Easily convert full or specific sections of HTML to Markdown Install Table of Contents - Sending Requests - Sending Requests With Asyncio - Accessing Page Metadata - Extracting Emails, Phone Numbers, Images, and Links - Extracting HTML Tables - More Parsing Options - Converting Responses to Markdown - Using Proxies Sending Requests Stealth-Requests mimics the API of the requests package, allowing you to use it in nearly the same way. You can send one-off requests like this: Or you can use a StealthSession object which will keep track of certain headers for you between requests such as the Referer header. Stealth-Requests has a built-in retry feature that automatically waits 2 seconds and retries the request if it fails due to certain status codes (like 429, 503, etc.). To enable retries, just pass the number of retry attempts using the retry argument: Sending Requests With Asyncio Ste","default_branch":null,"files":null,"tree":[],"storefront":"/r/jpjacobpadilla","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/jpjacobpadilla/Stealth-Requests/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}