Скрипт Beautiful Soup не доставляет желаемый выход CSV - PullRequest
0 голосов
/ 04 февраля 2020

Я новичок в scraping / BS4 и у меня возникла проблема с получением этого csv-файла для перечисления всех участников. Моя проблема в том, что CSV перечисляет информацию об одном члене в нескольких строках. Если у кого-то есть какие-либо идеи, чтобы это исправить, буду очень признателен.

    import requests
    import csv
    from bs4 import BeautifulSoup

    r = requests.get('https://vermontmaple.org/basic-member-list')

    soup = BeautifulSoup(r.text, 'html.parser')

    with open('list.csv', 'w') as f:

        writer = csv.writer(f)

        writer.writerow(['name', 'address', 'phone'])

        for company in soup.findAll('div', class_='directory_item selected'):
            maple_name = soup.find('div', class_='name').get_text(strip=True)
            maple_address = soup.find('div', class_='address').get_text(strip=True)
            maple_phone = soup.find('div', class_='phone').get_text(strip=True)

            writer.writerow([maple_name, maple_address, maple_phone])

        f.close()

1 Ответ

0 голосов
/ 04 февраля 2020

изменить soup.find на company.find внутри Forl oop

for company in soup.findAll('div', class_='directory_item selected'):
        maple_name = company.find('div', class_='name').get_text(strip=True)
        maple_address = company.find('div', class_='address').get_text(strip=True)
        maple_phone = company.find('div', class_='phone').get_text(strip=True)

нет необходимости в f.close()

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