Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.mypy_cache
.venv
.vscode
scraped_quotes.csv
4 changes: 2 additions & 2 deletions basic_scrape.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@

#FIND ALL THE ITEMS IN THE PAGE WITH A CLASS ATTRIBUTE OF 'TEXT'
#AND STORE THE LIST AS A VARIABLE
quotes = soup.findAll('span', attrs={'class':'text'})
quotes = soup.find_all('span', attrs={'class': 'text'})

#FIND ALL THE ITEMS IN THE PAGE WITH A CLASS ATTRIBUTE OF 'AUTHOR'
#AND STORE THE LIST AS A VARIABLE
authors = soup.findAll('small', attrs={"class":"author"})
authors = soup.find_all('small', attrs={"class": "author"})

#LOOP THROUGH BOTH LISTS USING THE 'ZIP' FUNCTION
#AND PRINT AND FORMAT THE RESULTS
Expand Down
64 changes: 33 additions & 31 deletions basic_scrape_csv_export.py
Original file line number Diff line number Diff line change
@@ -1,35 +1,37 @@
#IMPORT LIBRARIES
# IMPORT CSV LIBRARY
import csv

# IMPORT LIBRARIES
from bs4 import BeautifulSoup
import requests

#IMPORT CSV LIBRARY
import csv
# OPEN A NEW CSV FILE. IT CAN BE CALLED ANYTHING
with open("scraped_quotes.csv", "w", encoding="utf-8") as file:

# CREATE A VARIABLE FOR WRITING TO THE CSV
writer = csv.writer(file)

# CREATE THE HEADER ROW OF THE CSV
writer.writerow(["Quote", "Author"])

# REQUEST WEBPAGE AND STORE IT AS A VARIABLE
page_to_scrape = requests.get("https://quotes.toscrape.com", timeout=30)

# USE BEAUTIFULSOUP TO PARSE THE HTML AND STORE IT AS A VARIABLE
soup = BeautifulSoup(page_to_scrape.text, "html.parser")

# FIND ALL THE ITEMS IN THE PAGE WITH A CLASS ATTRIBUTE OF 'TEXT'
# AND STORE THE LIST AS A VARIABLE
quotes = soup.find_all("span", attrs={"class": "text"})

# FIND ALL THE ITEMS IN THE PAGE WITH A CLASS ATTRIBUTE OF 'AUTHOR'
# AND STORE THE LIST AS A VARIABLE
authors = soup.find_all("small", attrs={"class": "author"})

# LOOP THROUGH BOTH LISTS USING THE 'ZIP' FUNCTION
# AND PRINT AND FORMAT THE RESULTS
for quote, author in zip(quotes, authors):
print(quote.text + "-" + author.text)

#OPEN A NEW CSV FILE. IT CAN BE CALLED ANYTHING
file = open('scraped_quotes.csv', 'w')
#CREATE A VARIABLE FOR WRITING TO THE CSV
writer = csv.writer(file)

#CREATE THE HEADER ROW OF THE CSV
writer.writerow(['Quote', 'Author'])

#REQUEST WEBPAGE AND STORE IT AS A VARIABLE
page_to_scrape = requests.get("http://quotes.toscrape.com")
#USE BEAUTIFULSOUP TO PARSE THE HTML AND STORE IT AS A VARIABLE
soup = BeautifulSoup(page_to_scrape.text, 'html.parser')
#FIND ALL THE ITEMS IN THE PAGE WITH A CLASS ATTRIBUTE OF 'TEXT'
#AND STORE THE LIST AS A VARIABLE
quotes = soup.findAll('span', attrs={'class':'text'})

#FIND ALL THE ITEMS IN THE PAGE WITH A CLASS ATTRIBUTE OF 'AUTHOR'
#AND STORE THE LIST AS A VARIABLE
authors = soup.findAll('small', attrs={"class":"author"})

#LOOP THROUGH BOTH LISTS USING THE 'ZIP' FUNCTION
#AND PRINT AND FORMAT THE RESULTS
for quote, author in zip(quotes, authors):
print(quote.text + "-" + author.text)
#WRITE EACH ITEM AS A NEW ROW IN THE CSV
writer.writerow([quote.text, author.text])
#CLOSE THE CSV FILE
file.close()
# WRITE EACH ITEM AS A NEW ROW IN THE CSV
writer.writerow([quote.text, author.text])