Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f7ad112

Browse files
add logic for writing restaurant details as csv data
1 parent 6ee448f commit f7ad112

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

‎write_csv_data.py‎

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,34 @@
11
import requests
2+
import csv
23
from bs4 import BeautifulSoup
34

45
base_url = "https://www.yelp.com/search?find_desc=Restaurants&find_loc={}&start={}"
56
city = "los+angeles"
67
start = 0
7-
file_path = f'yelp-{city}-clean.txt'
8+
file_path = f'yelp-{city}-clean.csv'
89

9-
while start < 990:
10+
def get_length(file_path):
11+
with open(file_path) as csvfile:
12+
reader = csv.reader(csvfile)
13+
reader_list = list(reader)
14+
return len(reader_list)
15+
16+
17+
while start < 60:
1018
print(start)
1119
url = base_url.format(city, start)
1220
response = requests.get(url)
1321
print(f"STATUS CODE: {response.status_code} FOR {response.url}")
1422
soup = BeautifulSoup(response.text, 'html.parser')
1523
businesses = soup.findAll('div', {'class': 'biz-listing-large'})
1624

17-
with open(file_path, 'a') as textFile:
25+
with open(file_path, 'a', newline='') as csvfile:
26+
fieldnames = ['id', 'title', 'address', 'phone']
27+
reader = csv.DictReader(csvfile, fieldnames=fieldnames)
28+
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
1829
count = 0
30+
if start == 0:
31+
writer.writeheader()
1932
for biz in businesses:
2033
first_line = ""
2134
second_line = ""
@@ -36,7 +49,9 @@
3649
print(e)
3750
address = None
3851
logs = open('errors.log', 'a')
52+
logs.write(str(__file__) + '-- STARTS' + '\n')
3953
logs.write(str(e) + '\n')
54+
logs.write(str(__file__) + '-- ENDS' + '\n\n')
4055
logs.close()
4156

4257
try:
@@ -51,7 +66,9 @@
5166
first_line = None
5267
second_line = None
5368
logs = open('errors.log', 'a')
69+
logs.write(str(__file__) + '-- STARTS' + '\n')
5470
logs.write(str(e) + '\n')
71+
logs.write(str(__file__) + '-- ENDS' + '\n\n')
5572
logs.close()
5673

5774
try:
@@ -65,17 +82,28 @@
6582
print(e)
6683
phone_number = None
6784
logs = open('errors.log', 'a')
85+
logs.write(str(__file__) + '-- STARTS' + '\n')
6886
logs.write(str(e) + '\n')
87+
logs.write(str(__file__) + '-- ENDS' + '\n\n')
6988
logs.close()
7089

7190
detail = f"{title}\n{second_line}\n{phone_number}\n"
7291
print(detail)
7392

93+
next_id = get_length(file_path)
94+
7495
try:
75-
textFile.write(str(detail) + '\n\n')
96+
writer.writerow({
97+
'id': next_id,
98+
'title': title,
99+
'address': second_line,
100+
'phone': phone_number
101+
})
76102
except Exception as e:
77103
logs = open('errors.log', 'a')
104+
logs.write(str(__file__) + '-- STARTS' + '\n')
78105
logs.write(str(e) + '\n')
106+
logs.write(str(__file__) + '-- ENDS' + '\n\n')
79107
logs.close()
80108

81109
start += 30

‎yelp-los+angeles-clean.csv‎

Whitespace-only changes.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /