1 Pluspunkt 0 Minuspunkte
Ich verwende simple_html_dom um HTML Dateien zu durchsuchen. Gibt es sowas für Python um einen Scraper zu erstellen?
von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Mit dem Paket HTMLDOM kannst du das machen.

from htmldom import htmldom

page = htmldom.HtmlDom( "http://digg.com/" ).createDom()
items = page.find( "div.story-item-content" )
new_page = htmldom.HtmlDom().createDom( "<html><head><title>Digged Data</title></head><body><table></table></body></html>" )

for item in items:
    title = item.find( ".story-item-title" ).text().strip()
    description = item.find( ".story-item-description" ).text().strip()
    new_page.find( "table" ).append( "<tr><td>" + title + "</td><td>" + description + "</td></tr>" );

von  
0 Pluspunkte 0 Minuspunkte

Eine der beliebtesten Bibliotheken ist BeautifulSoup. Hier ein einfaches Beispiel.

from bs4 import BeautifulSoup

# Das zu parsende HTML
html = """
<html>
<head>
    <title>Beispiel Webseite</title>
</head>
<body>
    <h1>Willkommen!</h1>
    <p>Dies ist ein Beispieltext.</p>
    <ul>
        <li>Element 1</li>
        <li>Element 2</li>
        <li>Element 3</li>
    </ul>
</body>
</html>
"""

# BeautifulSoup initialisieren
soup = BeautifulSoup(html, 'html.parser')

# Beispiele für Aktionen, die du mit BeautifulSoup durchführen kannst:
# Zugriff auf den Titel der Seite
title = soup.title
print("Titel:", title.text)

# Zugriff auf Überschriften
headings = soup.find_all(['h1', 'h2', 'h3'])
for heading in headings:
    print("Überschrift:", heading.text)

# Zugriff auf Paragraphen
paragraphs = soup.find_all('p')
for paragraph in paragraphs:
    print("Paragraph:", paragraph.text)

# Zugriff auf Listenpunkte
list_items = soup.find_all('li')
for item in list_items:
    print("Listenpunkt:", item.text)

von (542 Punkte)