Я работаю с Python и очисткой данных.Я создал сценарий, который очищает сайт.
Возможно ли иметь 2 'супа страницы с циклами for в одном сценарии Beautiful Soup?или это должен быть один для всей страницы?т.е.
containers = page_soup.findAll("div",{"class":"ppr_priv_location_detail_header"})
details_containers = page_soup.findAll("div",{"class":"content_block"})
Как бы я добавил циклы for?
Содержимое, которое я пытаюсь получить:
content = details_container.findAll("div",{"class":"content"})
price_range = content.span.text.replace('\n', ' ')
Это код, с которым я работаю.
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
my_url = 'https://www.tripadvisor.co.uk/Restaurant_Review-g186338-d12801049-Reviews-Core_by_Clare_Smyth-London_England.html'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
#HTML PARSER
page_soup = soup(page_html, "html.parser")
filename ="trip2.0.csv"
f = open(filename, 'w')
headers ="title, street_address, price_range\n "
containers = page_soup.findAll("div",{"class":"ppr_priv_location_detail_header"})
f.write(headers)
for container in containers:
title = container.h1.text
street_address_container = container.findAll("span",{"class":"street-address"})
street_address = street_address_container[0].text
content = details_container.findAll("div",{"class":"content"})
price_range = content.span.text.replace('\n', ' ')
print("title: " + title)
print("street_address: " + street_address)
print("price_range: " + price_range)
f.write(title + "," + street_address + "," + price_range + "\n")
f.close()