Все массивы должны быть одинаковой длины ИЛИ Как заставить Beautifulsoup сказать мне, что он что-то не нашел - PullRequest
0 голосов
/ 08 октября 2019

Попытка очистить события из календаря на http://www.stadtrevue.de/tageskalender (разные страницы и даты работают нормально), но не у каждого события есть перечисленный "Veranstaltungsort" (например, http://www.stadtrevue.de/tageskalender/tageskalender-results/tanz/2019/11/1/),, поэтому при попытке записиво внешний csv, я получаю либо ошибки, либо пустые файлы

Хотел заставить Beautifulsoup сообщать мне, когда он не находит подходящий объект, поэтому вместо этого я могу вставить заполнитель в список, но это нетоже не работает. Текущая попытка использовала словари, получая ошибку «Все массивы должны быть одинаковой длины», то же самое с dataframe; writerow / s просто дает мне пустой файл. Я знаю, что текущая попытка просто перезаписывает файл снова иопять же было попытаться поработать над ошибкой массива

from bs4 import BeautifulSoup
import requests
import pandas as pd
import csv

```[in between: User input for date]]

def Suche():
```define lists for the results
    Name = []
    Ort = []
    Zeit = []
    Beschreibung = []
    Kategorie = []

```Removing suggested events
    soup.find("div", class_="tx-srtk-pi1-listView2").decompose()

```Veranstaltungsname
    absaetze = soup.find_all("div", class_="tx-srtk-pi1-listrowField-title")

    for absatz in absaetze:
        print(absatz.get_text())
        Name.append(absatz.get_text())

```Veranstaltungsort
    absaetze = soup.find_all("div", class_="tx-srtk-pi1-listrowField-name")

    for absatz in absaetze:
        print(absatz.get_text())
        Ort.append(absatz.get_text())

```Veranstaltungszeit
    absaetze = soup.find_all("div", class_="tx-srtk-pi1-listrowField-time")

    for absatz in absaetze:
        print(absatz.get_text())
        Zeit.append(absatz.get_text())

```Veranstaltungsbeschreibung
    absaetze = soup.find_all("div", class_="tx-srtk-pi1-listrowField-text")

    for absatz in absaetze:
        print(absatz.get_text())
        Beschreibung.append(absatz.get_text())

```Veranstaltungskategorie
    absaetze = soup.find_all("div", class_="tx-srtk-pi1-listrowField-rubric")

    for absatz in absaetze:
        print(absatz.get_text())
        Kategorie.append(absatz.get_text())

    dict={"Kategorie":Kategorie, "Uhrzeit":Zeit, "Veranstaltungsname":Name, "Veranstaltungsort":Ort, "Beschreibung":Beschreibung}
    df=pd.DataFrame(dict)
    df.to_csv('KoelnAction.csv', index=False, encoding='utf-16')

```[after: going through the different categories by date]

I wanted an excel-spreadsheet containing all the events (the command-window works fine, even though the results aren't in the right order yet) in an orderly fashion with Category, Time, place, etc.
As stated above, i get the "Arrays must all be the same length"-error when trying to write the output into a file because of the missing "Veranstaltungsort" in some events
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...