Есть ли простой способ получить доступ к тегу div внутри другого элемента div, содержащего теги ul и li? - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь вычеркнуть список магазинов с веб-сайта (список можно отобразить только при вводе почтового индекса), используя 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'


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...