diff --git a/lab-web-scraping.ipynb b/lab-web-scraping.ipynb
index e552783..b415557 100644
--- a/lab-web-scraping.ipynb
+++ b/lab-web-scraping.ipynb
@@ -117,7 +117,10423 @@
},
"outputs": [],
"source": [
- "# Your solution goes here"
+ "# Your solution goes here\n",
+ "# We need to scrape ratings & genres\n",
+ "# filter based on ratings & genre\n",
+ "# get all the data in a dataframe"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f230d60d",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 1. go to each category - scrape_category\n",
+ "# 2. Go to each page of the category - flip_pages\n",
+ "# 3. Get to each link of each book - scrape_book"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "de9931a6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# UPC, Availability, Description, Price - the book pge\n",
+ "# Genre - the link to the category\n",
+ "# Title, Rating - in the pages of the website"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2c1ea4c5",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "081ebea0",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "200"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import requests\n",
+ "from bs4 import BeautifulSoup\n",
+ "\n",
+ "response = requests.get(\"https://books.toscrape.com/index.html\")\n",
+ "response.status_code"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "548185dc",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " All products | Books to Scrape - Sandbox\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ " - \n",
+ " Home\n",
+ "
\n",
+ " - All products
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ "\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ "
\n",
+ " Warning! This is a demo website for web scraping purposes. Prices and ratings here were randomly assigned and have no real meaning.
\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£51.77
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£53.74
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£50.10
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£47.82
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£54.23
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£22.65
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£33.34
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£17.93
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£22.60
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£52.15
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£13.99
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£20.66
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£17.46
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£52.29
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£35.02
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£57.25
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£23.88
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£37.59
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£51.33
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " - \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "

\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
£45.17
\n",
+ " \n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(response.text)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ " All products | Books to Scrape - Sandbox\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "
\n",
+ "- \n",
+ "Home\n",
+ "
\n",
+ "- All products
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ "\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "Warning! This is a demo website for web scraping purposes. Prices and ratings here were randomly assigned and have no real meaning.
\n",
+ "\n",
+ "
\n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£51.77
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£53.74
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£50.10
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£47.82
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£54.23
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£22.65
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£33.34
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£17.93
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£22.60
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£52.15
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£13.99
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£20.66
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£17.46
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£52.29
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£35.02
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£57.25
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£23.88
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£37.59
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£51.33
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "- \n",
+ "\n",
+ "
\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£45.17
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ ""
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup = BeautifulSoup(response.text)\n",
+ "soup"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "f03d742c",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1542"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "response.text.find(\"div\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "bb5acbaf",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[,\n",
+ " ,\n",
+ " ,\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " - \n",
+ " Home\n",
+ "
\n",
+ " - All products
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " Warning! This is a demo website for web scraping purposes. Prices and ratings here were randomly assigned and have no real meaning.
\n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£51.77
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£53.74
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£50.10
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£47.82
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£54.23
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£22.65
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£33.34
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£17.93
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£22.60
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£52.15
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£13.99
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£20.66
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£17.46
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£52.29
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£35.02
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£57.25
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£23.88
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£37.59
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£51.33
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£45.17
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "
\n",
+ " - \n",
+ " Home\n",
+ "
\n",
+ " - All products
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " Warning! This is a demo website for web scraping purposes. Prices and ratings here were randomly assigned and have no real meaning.
\n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£51.77
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£53.74
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£50.10
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£47.82
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£54.23
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£22.65
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£33.34
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£17.93
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£22.60
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£52.15
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£13.99
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£20.66
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£17.46
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£52.29
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£35.02
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£57.25
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£23.88
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£37.59
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£51.33
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£45.17
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " Warning! This is a demo website for web scraping purposes. Prices and ratings here were randomly assigned and have no real meaning.
\n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£51.77
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£53.74
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£50.10
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£47.82
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£54.23
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£22.65
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£33.34
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£17.93
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£22.60
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£52.15
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£13.99
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£20.66
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£17.46
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£52.29
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£35.02
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£57.25
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£23.88
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£37.59
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£51.33
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£45.17
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "
,\n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Books\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Travel\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Mystery\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Historical Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Sequential Art\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Classics\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Philosophy\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Romance\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Womens Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Childrens\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Religion\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Nonfiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Music\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Default\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Science Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Sports and Games\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Add a comment\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Fantasy\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " New Adult\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Young Adult\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Science\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Poetry\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Paranormal\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Art\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Psychology\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Autobiography\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Parenting\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Adult Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Humor\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Horror\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " History\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Food and Drink\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Christian Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Business\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Biography\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Thriller\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Contemporary\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Spirituality\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Academic\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Self Help\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Historical\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Christian\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Suspense\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Short Stories\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Novels\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Health\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Politics\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Cultural\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Erotica\n",
+ " \n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ " \n",
+ " Crime\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " Warning! This is a demo website for web scraping purposes. Prices and ratings here were randomly assigned and have no real meaning.
\n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£51.77
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£53.74
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£50.10
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£47.82
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£54.23
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£22.65
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£33.34
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£17.93
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£22.60
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£52.15
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£13.99
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£20.66
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£17.46
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£52.29
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£35.02
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£57.25
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£23.88
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£37.59
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£51.33
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£45.17
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
,\n",
+ " ,\n",
+ " \n",
+ "
,\n",
+ " \n",
+ "
,\n",
+ " \n",
+ "
,\n",
+ " Warning! This is a demo website for web scraping purposes. Prices and ratings here were randomly assigned and have no real meaning.
,\n",
+ " \n",
+ "
\n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£51.77
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£53.74
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£50.10
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£47.82
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£54.23
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£22.65
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£33.34
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£17.93
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£22.60
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£52.15
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£13.99
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£20.66
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£17.46
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£52.29
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£35.02
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£57.25
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£23.88
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£37.59
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£51.33
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " - \n",
+ " \n",
+ "
\n",
+ "

\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ " \n",
+ " \n",
+ "
£45.17
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£51.77
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£53.74
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£50.10
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£47.82
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£54.23
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£22.65
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£33.34
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£17.93
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£22.60
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£52.15
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£13.99
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£20.66
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£17.46
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£52.29
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£35.02
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£57.25
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£23.88
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£37.59
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£51.33
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ "

\n",
+ "
,\n",
+ " \n",
+ "
£45.17
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
,\n",
+ " \n",
+ " \n",
+ "
]"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup.find_all(\"div\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "eecbbb90",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[Books to Scrape,\n",
+ " Home,\n",
+ " \n",
+ " \n",
+ " Books\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Travel\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Mystery\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Historical Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Sequential Art\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Classics\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Philosophy\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Romance\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Womens Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Childrens\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Religion\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Nonfiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Music\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Default\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Science Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Sports and Games\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Add a comment\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Fantasy\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " New Adult\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Young Adult\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Science\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Poetry\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Paranormal\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Art\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Psychology\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Autobiography\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Parenting\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Adult Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Humor\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Horror\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " History\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Food and Drink\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Christian Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Business\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Biography\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Thriller\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Contemporary\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Spirituality\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Academic\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Self Help\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Historical\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Christian\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Suspense\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Short Stories\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Novels\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Health\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Politics\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Cultural\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Erotica\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Crime\n",
+ " \n",
+ " ,\n",
+ "
,\n",
+ " A Light in the ...,\n",
+ "
,\n",
+ " Tipping the Velvet,\n",
+ "
,\n",
+ " Soumission,\n",
+ "
,\n",
+ " Sharp Objects,\n",
+ "
,\n",
+ " Sapiens: A Brief History ...,\n",
+ "
,\n",
+ " The Requiem Red,\n",
+ "
,\n",
+ " The Dirty Little Secrets ...,\n",
+ "
,\n",
+ " The Coming Woman: A ...,\n",
+ "
,\n",
+ " The Boys in the ...,\n",
+ "
,\n",
+ " The Black Maria,\n",
+ "
,\n",
+ " Starving Hearts (Triangular Trade ...,\n",
+ "
,\n",
+ " Shakespeare's Sonnets,\n",
+ "
,\n",
+ " Set Me Free,\n",
+ "
,\n",
+ " Scott Pilgrim's Precious Little ...,\n",
+ "
,\n",
+ " Rip it Up and ...,\n",
+ "
,\n",
+ " Our Band Could Be ...,\n",
+ "
,\n",
+ " Olio,\n",
+ "
,\n",
+ " Mesaerion: The Best Science ...,\n",
+ "
,\n",
+ " Libertarianism for Beginners,\n",
+ "
,\n",
+ " It's Only the Himalayas,\n",
+ " next]"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup.find_all(\"a\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "7b47b762",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Books\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Travel\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Mystery\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Historical Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Sequential Art\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Classics\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Philosophy\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Romance\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Womens Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Childrens\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Religion\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Nonfiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Music\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Default\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Science Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Sports and Games\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Add a comment\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Fantasy\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " New Adult\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Young Adult\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Science\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Poetry\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Paranormal\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Art\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Psychology\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Autobiography\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Parenting\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Adult Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Humor\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Horror\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " History\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Food and Drink\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Christian Fiction\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Business\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Biography\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Thriller\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Contemporary\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Spirituality\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Academic\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Self Help\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Historical\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Christian\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Suspense\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Short Stories\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Novels\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Health\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Politics\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Cultural\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Erotica\n",
+ " \n",
+ " \n",
+ "
\n",
+ "- \n",
+ "\n",
+ " \n",
+ " Crime\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup.find(\"ul\",class_=\"nav nav-list\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "id": "50135a52",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "unordered_lists = soup.find_all(\"ul\", class_=\"nav nav-list\")\n",
+ "len(unordered_lists)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "cae7c128",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[\n",
+ " \n",
+ " Books\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Travel\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Mystery\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Historical Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Sequential Art\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Classics\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Philosophy\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Romance\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Womens Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Childrens\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Religion\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Nonfiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Music\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Default\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Science Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Sports and Games\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Add a comment\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Fantasy\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " New Adult\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Young Adult\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Science\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Poetry\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Paranormal\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Art\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Psychology\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Autobiography\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Parenting\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Adult Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Humor\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Horror\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " History\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Food and Drink\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Christian Fiction\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Business\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Biography\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Thriller\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Contemporary\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Spirituality\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Academic\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Self Help\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Historical\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Christian\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Suspense\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Short Stories\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Novels\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Health\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Politics\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Cultural\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Erotica\n",
+ " \n",
+ " ,\n",
+ " \n",
+ " \n",
+ " Crime\n",
+ " \n",
+ " ]"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "category_list = soup.find_all(\"ul\", class_=\"nav nav-list\")[0]\n",
+ "category_list.find_all(\"a\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "bcf90b5a",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'catalogue/category/books_1/index.html'"
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "category_list.find_all(\"a\")[0].get(\"href\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "id": "49632ad7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'Books'"
+ ]
+ },
+ "execution_count": 29,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "category_list.find_all(\"a\")[0].text.strip()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "id": "790207a3",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'Books': 'catalogue/category/books_1/index.html', 'Travel': 'catalogue/category/books/travel_2/index.html', 'Mystery': 'catalogue/category/books/mystery_3/index.html', 'Historical Fiction': 'catalogue/category/books/historical-fiction_4/index.html', 'Sequential Art': 'catalogue/category/books/sequential-art_5/index.html', 'Classics': 'catalogue/category/books/classics_6/index.html', 'Philosophy': 'catalogue/category/books/philosophy_7/index.html', 'Romance': 'catalogue/category/books/romance_8/index.html', 'Womens Fiction': 'catalogue/category/books/womens-fiction_9/index.html', 'Fiction': 'catalogue/category/books/fiction_10/index.html', 'Childrens': 'catalogue/category/books/childrens_11/index.html', 'Religion': 'catalogue/category/books/religion_12/index.html', 'Nonfiction': 'catalogue/category/books/nonfiction_13/index.html', 'Music': 'catalogue/category/books/music_14/index.html', 'Default': 'catalogue/category/books/default_15/index.html', 'Science Fiction': 'catalogue/category/books/science-fiction_16/index.html', 'Sports and Games': 'catalogue/category/books/sports-and-games_17/index.html', 'Add a comment': 'catalogue/category/books/add-a-comment_18/index.html', 'Fantasy': 'catalogue/category/books/fantasy_19/index.html', 'New Adult': 'catalogue/category/books/new-adult_20/index.html', 'Young Adult': 'catalogue/category/books/young-adult_21/index.html', 'Science': 'catalogue/category/books/science_22/index.html', 'Poetry': 'catalogue/category/books/poetry_23/index.html', 'Paranormal': 'catalogue/category/books/paranormal_24/index.html', 'Art': 'catalogue/category/books/art_25/index.html', 'Psychology': 'catalogue/category/books/psychology_26/index.html', 'Autobiography': 'catalogue/category/books/autobiography_27/index.html', 'Parenting': 'catalogue/category/books/parenting_28/index.html', 'Adult Fiction': 'catalogue/category/books/adult-fiction_29/index.html', 'Humor': 'catalogue/category/books/humor_30/index.html', 'Horror': 'catalogue/category/books/horror_31/index.html', 'History': 'catalogue/category/books/history_32/index.html', 'Food and Drink': 'catalogue/category/books/food-and-drink_33/index.html', 'Christian Fiction': 'catalogue/category/books/christian-fiction_34/index.html', 'Business': 'catalogue/category/books/business_35/index.html', 'Biography': 'catalogue/category/books/biography_36/index.html', 'Thriller': 'catalogue/category/books/thriller_37/index.html', 'Contemporary': 'catalogue/category/books/contemporary_38/index.html', 'Spirituality': 'catalogue/category/books/spirituality_39/index.html', 'Academic': 'catalogue/category/books/academic_40/index.html', 'Self Help': 'catalogue/category/books/self-help_41/index.html', 'Historical': 'catalogue/category/books/historical_42/index.html', 'Christian': 'catalogue/category/books/christian_43/index.html', 'Suspense': 'catalogue/category/books/suspense_44/index.html', 'Short Stories': 'catalogue/category/books/short-stories_45/index.html', 'Novels': 'catalogue/category/books/novels_46/index.html', 'Health': 'catalogue/category/books/health_47/index.html', 'Politics': 'catalogue/category/books/politics_48/index.html', 'Cultural': 'catalogue/category/books/cultural_49/index.html', 'Erotica': 'catalogue/category/books/erotica_50/index.html', 'Crime': 'catalogue/category/books/crime_51/index.html'}\n"
+ ]
+ }
+ ],
+ "source": [
+ "categories = {elem.text.strip(): elem.get(\"href\") for elem in soup.find_all(\"ul\", class_=\"nav nav-list\")[0].find_all(\"a\")}\n",
+ "print(categories)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "080ac3a5",
+ "metadata": {},
+ "source": [
+ "Mock-up"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "id": "2695d6e3",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[£51.77
,\n",
+ " £53.74
,\n",
+ " £50.10
,\n",
+ " £47.82
,\n",
+ " £54.23
,\n",
+ " £22.65
,\n",
+ " £33.34
,\n",
+ " £17.93
,\n",
+ " £22.60
,\n",
+ " £52.15
,\n",
+ " £13.99
,\n",
+ " £20.66
,\n",
+ " £17.46
,\n",
+ " £52.29
,\n",
+ " £35.02
,\n",
+ " £57.25
,\n",
+ " £23.88
,\n",
+ " £37.59
,\n",
+ " £51.33
,\n",
+ " £45.17
]"
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup.find_all('p', class_=\"price_color\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "id": "9baa2fbf",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ]"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup.find_all('h3')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "id": "453afe9f",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
]"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup.find_all(\"p\", class_=\"star-rating\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "id": "5c20a761",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[\n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
,\n",
+ " \n",
+ " \n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
]"
+ ]
+ },
+ "execution_count": 34,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup.find_all(\"p\", class_=\"instock\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c7c329ee",
+ "metadata": {},
+ "source": [
+ "Data quality. This is for making sure to get all the info for a specific book. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "id": "fd343d8b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "20"
+ ]
+ },
+ "execution_count": 35,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "products = soup.find_all(\"article\", class_=\"product_pod\")\n",
+ "len(products)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "id": "de89b058",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "\n",
+ "\n",
+ "

\n",
+ "
\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "
£51.77
\n",
+ "
\n",
+ "\n",
+ " \n",
+ " In stock\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ ""
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "products[0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "id": "5c50d219",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'£51.77'"
+ ]
+ },
+ "execution_count": 37,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "price = products[0].find('p', class_=\"price_color\").text\n",
+ "price"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "id": "1f677b38",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "A Light in the ..."
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "title = products[0].find('h3').find('a')\n",
+ "title"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "id": "2bb63e63",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "products[0].find('h3').get(\"href\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "ccd62cb2",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'catalogue/a-light-in-the-attic_1000/index.html'"
+ ]
+ },
+ "execution_count": 40,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#book url\n",
+ "products[0].find('h3').find(\"a\").get(\"href\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "id": "2eea4af8",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'A Light in the Attic'"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#book title\n",
+ "products[0].find('h3').find(\"a\").get(\"title\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "id": "ec60b533",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "
]"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "products[0].find_all('p', class_=\"star-rating\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "id": "90b24979",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'Three'"
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "products[0].find('p', class_=\"star-rating\").get(\"class\")[-1]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "id": "da3ecf01",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'In stock'"
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "products[0].find(\"p\", class_=\"instock\").text.strip()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "39a704a0",
+ "metadata": {},
+ "source": [
+ "Getting info for books in a web page."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "id": "42d5c281",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "product_list = []\n",
+ "\n",
+ "for product in soup.find_all(\"article\", class_=\"product_pod\"):\n",
+ " price = product.find('p', class_=\"price_color\").text\n",
+ " title = product.find('h3').find(\"a\").get(\"title\")\n",
+ " book_url = product.find('h3').find(\"a\").get(\"href\")\n",
+ " rating = product.find('p', class_=\"star-rating\").get(\"class\")[-1]\n",
+ " availability = product.find(\"p\", class_=\"instock\").text.strip()\n",
+ "\n",
+ " product_dict = {\n",
+ " \"price\": price,\n",
+ " \"title\": title,\n",
+ " \"book_url\": book_url,\n",
+ " \"rating\": rating,\n",
+ " \"availability\": availability\n",
+ " }\n",
+ "\n",
+ " product_list.append(product_dict)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "id": "302f1ff8",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " price | \n",
+ " title | \n",
+ " book_url | \n",
+ " rating | \n",
+ " availability | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " £51.77 | \n",
+ " A Light in the Attic | \n",
+ " catalogue/a-light-in-the-attic_1000/index.html | \n",
+ " Three | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " £53.74 | \n",
+ " Tipping the Velvet | \n",
+ " catalogue/tipping-the-velvet_999/index.html | \n",
+ " One | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " £50.10 | \n",
+ " Soumission | \n",
+ " catalogue/soumission_998/index.html | \n",
+ " One | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " £47.82 | \n",
+ " Sharp Objects | \n",
+ " catalogue/sharp-objects_997/index.html | \n",
+ " Four | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " £54.23 | \n",
+ " Sapiens: A Brief History of Humankind | \n",
+ " catalogue/sapiens-a-brief-history-of-humankind... | \n",
+ " Five | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " £22.65 | \n",
+ " The Requiem Red | \n",
+ " catalogue/the-requiem-red_995/index.html | \n",
+ " One | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " £33.34 | \n",
+ " The Dirty Little Secrets of Getting Your Dream... | \n",
+ " catalogue/the-dirty-little-secrets-of-getting-... | \n",
+ " Four | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " £17.93 | \n",
+ " The Coming Woman: A Novel Based on the Life of... | \n",
+ " catalogue/the-coming-woman-a-novel-based-on-th... | \n",
+ " Three | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " £22.60 | \n",
+ " The Boys in the Boat: Nine Americans and Their... | \n",
+ " catalogue/the-boys-in-the-boat-nine-americans-... | \n",
+ " Four | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " £52.15 | \n",
+ " The Black Maria | \n",
+ " catalogue/the-black-maria_991/index.html | \n",
+ " One | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " £13.99 | \n",
+ " Starving Hearts (Triangular Trade Trilogy, #1) | \n",
+ " catalogue/starving-hearts-triangular-trade-tri... | \n",
+ " Two | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " £20.66 | \n",
+ " Shakespeare's Sonnets | \n",
+ " catalogue/shakespeares-sonnets_989/index.html | \n",
+ " Four | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " £17.46 | \n",
+ " Set Me Free | \n",
+ " catalogue/set-me-free_988/index.html | \n",
+ " Five | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " £52.29 | \n",
+ " Scott Pilgrim's Precious Little Life (Scott Pi... | \n",
+ " catalogue/scott-pilgrims-precious-little-life-... | \n",
+ " Five | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " £35.02 | \n",
+ " Rip it Up and Start Again | \n",
+ " catalogue/rip-it-up-and-start-again_986/index.... | \n",
+ " Five | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " £57.25 | \n",
+ " Our Band Could Be Your Life: Scenes from the A... | \n",
+ " catalogue/our-band-could-be-your-life-scenes-f... | \n",
+ " Three | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " £23.88 | \n",
+ " Olio | \n",
+ " catalogue/olio_984/index.html | \n",
+ " One | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " £37.59 | \n",
+ " Mesaerion: The Best Science Fiction Stories 18... | \n",
+ " catalogue/mesaerion-the-best-science-fiction-s... | \n",
+ " One | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " £51.33 | \n",
+ " Libertarianism for Beginners | \n",
+ " catalogue/libertarianism-for-beginners_982/ind... | \n",
+ " Two | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " £45.17 | \n",
+ " It's Only the Himalayas | \n",
+ " catalogue/its-only-the-himalayas_981/index.html | \n",
+ " Two | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " price title \\\n",
+ "0 £51.77 A Light in the Attic \n",
+ "1 £53.74 Tipping the Velvet \n",
+ "2 £50.10 Soumission \n",
+ "3 £47.82 Sharp Objects \n",
+ "4 £54.23 Sapiens: A Brief History of Humankind \n",
+ "5 £22.65 The Requiem Red \n",
+ "6 £33.34 The Dirty Little Secrets of Getting Your Dream... \n",
+ "7 £17.93 The Coming Woman: A Novel Based on the Life of... \n",
+ "8 £22.60 The Boys in the Boat: Nine Americans and Their... \n",
+ "9 £52.15 The Black Maria \n",
+ "10 £13.99 Starving Hearts (Triangular Trade Trilogy, #1) \n",
+ "11 £20.66 Shakespeare's Sonnets \n",
+ "12 £17.46 Set Me Free \n",
+ "13 £52.29 Scott Pilgrim's Precious Little Life (Scott Pi... \n",
+ "14 £35.02 Rip it Up and Start Again \n",
+ "15 £57.25 Our Band Could Be Your Life: Scenes from the A... \n",
+ "16 £23.88 Olio \n",
+ "17 £37.59 Mesaerion: The Best Science Fiction Stories 18... \n",
+ "18 £51.33 Libertarianism for Beginners \n",
+ "19 £45.17 It's Only the Himalayas \n",
+ "\n",
+ " book_url rating availability \n",
+ "0 catalogue/a-light-in-the-attic_1000/index.html Three In stock \n",
+ "1 catalogue/tipping-the-velvet_999/index.html One In stock \n",
+ "2 catalogue/soumission_998/index.html One In stock \n",
+ "3 catalogue/sharp-objects_997/index.html Four In stock \n",
+ "4 catalogue/sapiens-a-brief-history-of-humankind... Five In stock \n",
+ "5 catalogue/the-requiem-red_995/index.html One In stock \n",
+ "6 catalogue/the-dirty-little-secrets-of-getting-... Four In stock \n",
+ "7 catalogue/the-coming-woman-a-novel-based-on-th... Three In stock \n",
+ "8 catalogue/the-boys-in-the-boat-nine-americans-... Four In stock \n",
+ "9 catalogue/the-black-maria_991/index.html One In stock \n",
+ "10 catalogue/starving-hearts-triangular-trade-tri... Two In stock \n",
+ "11 catalogue/shakespeares-sonnets_989/index.html Four In stock \n",
+ "12 catalogue/set-me-free_988/index.html Five In stock \n",
+ "13 catalogue/scott-pilgrims-precious-little-life-... Five In stock \n",
+ "14 catalogue/rip-it-up-and-start-again_986/index.... Five In stock \n",
+ "15 catalogue/our-band-could-be-your-life-scenes-f... Three In stock \n",
+ "16 catalogue/olio_984/index.html One In stock \n",
+ "17 catalogue/mesaerion-the-best-science-fiction-s... One In stock \n",
+ "18 catalogue/libertarianism-for-beginners_982/ind... Two In stock \n",
+ "19 catalogue/its-only-the-himalayas_981/index.html Two In stock "
+ ]
+ },
+ "execution_count": 46,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pd.DataFrame(product_list)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "id": "633cd3fa",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def scrape_page(url: str) -> pd.DataFrame:\n",
+ " response = requests.get(url)\n",
+ " soup = BeautifulSoup(response.text)\n",
+ "\n",
+ " product_list = []\n",
+ "\n",
+ " for product in soup.find_all(\"article\", class_=\"product_pod\"):\n",
+ " price = product.find('p', class_=\"price_color\").text\n",
+ " title = product.find('h3').find(\"a\").get(\"title\")\n",
+ " book_url = product.find('h3').find(\"a\").get(\"href\")\n",
+ " rating = product.find('p', class_=\"star-rating\").get(\"class\")[-1]\n",
+ " availability = product.find(\"p\", class_=\"instock\").text.strip()\n",
+ "\n",
+ " product_dict = {\n",
+ " \"price\": price,\n",
+ " \"title\": title,\n",
+ " \"book_url\": book_url,\n",
+ " \"rating\": rating,\n",
+ " \"availability\": availability\n",
+ " }\n",
+ "\n",
+ " product_list.append(product_dict)\n",
+ "\n",
+ " return pd.DataFrame(product_list)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "id": "48004b50",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " price | \n",
+ " title | \n",
+ " book_url | \n",
+ " rating | \n",
+ " availability | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " £45.17 | \n",
+ " It's Only the Himalayas | \n",
+ " ../../../its-only-the-himalayas_981/index.html | \n",
+ " Two | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " £49.43 | \n",
+ " Full Moon over Noahâs Ark: An Odyssey to Mou... | \n",
+ " ../../../full-moon-over-noahs-ark-an-odyssey-t... | \n",
+ " Four | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " £48.87 | \n",
+ " See America: A Celebration of Our National Par... | \n",
+ " ../../../see-america-a-celebration-of-our-nati... | \n",
+ " Three | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " £36.94 | \n",
+ " Vagabonding: An Uncommon Guide to the Art of L... | \n",
+ " ../../../vagabonding-an-uncommon-guide-to-the-... | \n",
+ " Two | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " £37.33 | \n",
+ " Under the Tuscan Sun | \n",
+ " ../../../under-the-tuscan-sun_504/index.html | \n",
+ " Three | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " £44.34 | \n",
+ " A Summer In Europe | \n",
+ " ../../../a-summer-in-europe_458/index.html | \n",
+ " Two | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " £30.54 | \n",
+ " The Great Railway Bazaar | \n",
+ " ../../../the-great-railway-bazaar_446/index.html | \n",
+ " One | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " £56.88 | \n",
+ " A Year in Provence (Provence #1) | \n",
+ " ../../../a-year-in-provence-provence-1_421/ind... | \n",
+ " Four | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " £23.21 | \n",
+ " The Road to Little Dribbling: Adventures of an... | \n",
+ " ../../../the-road-to-little-dribbling-adventur... | \n",
+ " One | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " £38.95 | \n",
+ " Neither Here nor There: Travels in Europe | \n",
+ " ../../../neither-here-nor-there-travels-in-eur... | \n",
+ " Three | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " £26.08 | \n",
+ " 1,000 Places to See Before You Die | \n",
+ " ../../../1000-places-to-see-before-you-die_1/i... | \n",
+ " Five | \n",
+ " In stock | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " price title \\\n",
+ "0 £45.17 It's Only the Himalayas \n",
+ "1 £49.43 Full Moon over Noahâs Ark: An Odyssey to Mou... \n",
+ "2 £48.87 See America: A Celebration of Our National Par... \n",
+ "3 £36.94 Vagabonding: An Uncommon Guide to the Art of L... \n",
+ "4 £37.33 Under the Tuscan Sun \n",
+ "5 £44.34 A Summer In Europe \n",
+ "6 £30.54 The Great Railway Bazaar \n",
+ "7 £56.88 A Year in Provence (Provence #1) \n",
+ "8 £23.21 The Road to Little Dribbling: Adventures of an... \n",
+ "9 £38.95 Neither Here nor There: Travels in Europe \n",
+ "10 £26.08 1,000 Places to See Before You Die \n",
+ "\n",
+ " book_url rating availability \n",
+ "0 ../../../its-only-the-himalayas_981/index.html Two In stock \n",
+ "1 ../../../full-moon-over-noahs-ark-an-odyssey-t... Four In stock \n",
+ "2 ../../../see-america-a-celebration-of-our-nati... Three In stock \n",
+ "3 ../../../vagabonding-an-uncommon-guide-to-the-... Two In stock \n",
+ "4 ../../../under-the-tuscan-sun_504/index.html Three In stock \n",
+ "5 ../../../a-summer-in-europe_458/index.html Two In stock \n",
+ "6 ../../../the-great-railway-bazaar_446/index.html One In stock \n",
+ "7 ../../../a-year-in-provence-provence-1_421/ind... Four In stock \n",
+ "8 ../../../the-road-to-little-dribbling-adventur... One In stock \n",
+ "9 ../../../neither-here-nor-there-travels-in-eur... Three In stock \n",
+ "10 ../../../1000-places-to-see-before-you-die_1/i... Five In stock "
+ ]
+ },
+ "execution_count": 48,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "scrape_page(\"https://books.toscrape.com/catalogue/category/books/travel_2/index.html\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2340a1c9",
+ "metadata": {},
+ "source": [
+ "For all the pages(looping)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "ae8a4db7",
+ "metadata": {},
+ "source": [
+ "strategy 1: find the number of pages and do a for loop"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "id": "d42390f5",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'Page 1 of 50'"
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup.find_all('ul', class_=\"pager\")[0].text.strip().replace('next', '').strip()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "id": "c9478fbb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'Page 1 of 50\\n \\n \\nnext'"
+ ]
+ },
+ "execution_count": 50,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup.find_all('ul', class_=\"pager\")[0].text.strip()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "id": "88e0dd8c",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'\\n\\n \\n Page 1 of 50\\n \\n \\n\\n'"
+ ]
+ },
+ "execution_count": 51,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "soup.find_all('ul', class_=\"pager\")[0].text.replace('next', '')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "id": "c6539632",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "50"
+ ]
+ },
+ "execution_count": 52,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "no_pages = soup.find_all('ul', class_=\"pager\")[0].text.replace('next', '').strip().split(\"of \")[-1]\n",
+ "no_pages = int(no_pages)\n",
+ "no_pages"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "id": "0f08df9c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def get_page_no(url):\n",
+ " response = requests.get(url)\n",
+ " soup = BeautifulSoup(response.text)\n",
+ " no_pages = soup.find_all('ul', class_=\"pager\")[0].text.replace('next', '').strip().split(\"of \")[-1]\n",
+ " return int(no_pages)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "id": "b62c8c70",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def get_page_no(url):\n",
+ " response = requests.get(url)\n",
+ " soup = BeautifulSoup(response.text)\n",
+ " try:\n",
+ " no_pages = soup.find_all('ul', class_=\"pager\")[0].text.replace('next', '').strip().split(\"of \")[-1]\n",
+ " except IndexError as e:\n",
+ " print(e)\n",
+ " no_pages = 1\n",
+ " return int(no_pages)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "id": "8677b81e",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "list index out of range\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "1"
+ ]
+ },
+ "execution_count": 55,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get_page_no(\"https://books.toscrape.com/catalogue/category/books/new-adult_20/index.html\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "id": "14e899a1",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "4"
+ ]
+ },
+ "execution_count": 56,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get_page_no(\"https://books.toscrape.com/catalogue/category/books/fiction_10/index.html\")"
]
}
],
@@ -126,7 +10542,7 @@
"provenance": []
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel)",
+ "display_name": "base",
"language": "python",
"name": "python3"
},
@@ -140,7 +10556,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.13"
+ "version": "3.12.7"
}
},
"nbformat": 4,