Python-beautifulsoup - erste input-Wert

Habe ich viele Zeilen wie diese:

<tr>
    <td>100</td>
    <td>200</td>
    <td><input type="radio" value="123599"></td>
</tr>

Durchlaufen mit:

table = BeautifulSoup(response).find(id="sometable") # Make soup.

for row in table.find_all("tr")[1:]: # Find rows.
    cells = row.find_all("td") # Find cells.

    points = int(cells[0].get_text())
    gold = int(cells[1].get_text())
    id = cells[2].input['value']

    print id

Fehler:

File "./script.py", line XX, in <module>
id = cells[2].input['value']
TypeError: 'NoneType' object has no attribute '__getitem__'

Wie kann ich den input-Wert? Ich don ' T wollen, verwenden Sie regexp.

Es sieht aus wie mindestens eine Ihrer Zeilen, es gibt keine input-tag in der Dritten Zelle. Bitte geben Sie die gesamte markup, oder fangen Sie den Fehler und drucken die Zeile.
BeautifulSoup ist bekanntlich zerbrechlich. Bessere Nutzung lxml oder lxml.html.
Du hast Recht, ich vermisse, dass. Es gibt da auch eine Zeile ohne input-tag. Ich danke Ihnen sehr.

InformationsquelleAutor Mateusz Jagiełło | 2012-07-27

Schreibe einen Kommentar