Я пытаюсь вычеркнуть список магазинов с веб-сайта (список можно отобразить только при вводе почтового индекса), используя python и красивый суп. Когда я просматриваю исходный код страницы или ожидаю элементы, у меня есть эта структура
<div id ="storelist" class>
<ul>
<li id ="00021455" class>
.
.
.
<div class ="wr-store-details">
<h3> class "Store abc"</h3>
<span> class ="20005 dc">
<span> class ="LA">
</ul>
</div>
и я изо всех сил пытаюсь получить доступ ко второму <div class ="wr-store-details">
, чтобы очистить его 3 элемента.
Я пытался запустить скрипт ниже, но на самом деле
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import csv
import requests
URL = "http:www.abc.com"
r = requests.get(URL)
soup = BeautifulSoup(r.content, 'html5lib')
store_details_tab = [] # a list to store store_details-tab
table = soup.find('div', attrs = {'id':'storelist'})
for row in table.findAll('div', attrs = {'class':'store_details'}):
store_details = {}
store_details['store_name'] = row.div.text
store_details['store_address'] = row.span.text
store_details['store_city'] = row.span.text
store_details_tab.append(store_details)
filename = 'store_details_tab.csv'
with open(filename, 'wb') as f:
w = csv.DictWriter(f,['store_name','store_address','store_city'])
w.writeheader()
for store_details in store_details_tab:
w.writerow(store_details)
Я ожидаю CSV-файл с именами store_name, store_city и store_zip
Ошибка: TypeError: требуется байтоподобный объект, а не 'str'