Zephyrnet-logo

Webschrapen met Python-zelfstudie

Datum:

Stel dat u websites van concurrenten wilt schrapen voor hun prijspagina-informatie. Wat ga je doen? Het kopiëren en plakken van gegevens of het handmatig invoeren van gegevens is te traag, tijdrovend en foutgevoelig. Je kunt het eenvoudig automatiseren met behulp van Python.

Laten we in deze zelfstudie kijken hoe u webpagina's kunt schrapen met behulp van python.

Wat zijn de verschillende Python-webscraping-bibliotheken?

Python is populair voor webscraping vanwege de overvloed aan bibliotheken van derden die complexe HTML-structuren kunnen schrappen, tekst kunnen ontleden en kunnen communiceren met HTML-formulieren. Hier hebben we een aantal top Python-webscraping-bibliotheken vermeld.

  • Urlib3 is een krachtige HTTP-clientbibliotheek voor Python. Dit maakt het gemakkelijk om HTTP-verzoeken programmatisch uit te voeren. Het verwerkt HTTP-headers, nieuwe pogingen, omleidingen en andere details op laag niveau, waardoor het een uitstekende bibliotheek is voor webscraping. Het ondersteunt ook SSL-verificatie, verbindingspooling en proxying.
  • Mooie soep stelt u in staat HTML- en XML-documenten te ontleden. U kunt eenvoudig door de HTML-documentboom navigeren en tags, metatitels, attributen, tekst en andere inhoud extraheren met behulp van API. BeautifulSoup staat ook bekend om zijn robuuste foutafhandeling.
  • MechanischeSoep automatiseert de interactie tussen een webbrowser en een website efficiënt. Het biedt een hoogwaardige API voor webscraping die menselijk gedrag simuleert. Met MechanicalSoup kunt u communiceren met HTML-formulieren, op knoppen klikken en communiceren met elementen zoals een echte gebruiker.
  • Aanvragen is een eenvoudige maar krachtige Python-bibliotheek voor het maken van HTTP-verzoeken. Het is ontworpen om gebruiksvriendelijk en intuïtief te zijn, met een schone en consistente API. Met Requests kunt u eenvoudig GET- en POST-verzoeken verzenden en cookies, authenticatie en andere HTTP-functies afhandelen. Het wordt ook veel gebruikt bij webschrapen vanwege de eenvoud en het gebruiksgemak.
  • Selenium stelt u in staat om webbrowsers zoals Chrome, Firefox en Safari te automatiseren en menselijke interactie met websites te simuleren. U kunt op knoppen klikken, formulieren invullen, door pagina's scrollen en andere acties uitvoeren. Het wordt ook gebruikt voor het testen van webapplicaties en het automatiseren van repetitieve taken.
  • Pandas staat het opslaan en manipuleren van gegevens in verschillende formaten toe, waaronder CSV-, Excel-, JSON- en SQL-databases. Met Panda's kunt u eenvoudig gegevens van websites opschonen, transformeren en analyseren.

Extraheer tekst van elke webpagina met slechts één klik. Ga naar Websiteschraper van Nanonets, Voeg de URL toe en klik op "Schrapen" en download de webpagina-tekst direct als een bestand. Probeer het nu gratis.


Hoe gegevens van websites te schrapen met behulp van python?

Laten we eens kijken naar het stapsgewijze proces van het gebruik van Python om websitegegevens te schrapen.

Stap 1: Kies de website en webpagina-URL

De eerste stap is het selecteren van de website die u wilt schrapen. Laten we voor deze specifieke tutorial schrapen https://www.imdb.com/. We zullen proberen gegevens te extraheren over de best beoordeelde films op de website.

Stap 2: Inspecteer de website

Nu is de volgende stap het begrijpen van de structuur van de website. Begrijp wat de attributen zijn van de elementen die van belang zijn. Klik met de rechtermuisknop op de website om "Inspecteren" te selecteren. Dit opent de HTML-code. Gebruik de inspectietool om de naam te zien van alle elementen die in de code moeten worden gebruikt.

Noteer de klassenamen en id's van deze elementen, aangezien deze in de Python-code zullen worden gebruikt.

Stap 3: Installatie van de belangrijke bibliotheken

Zoals eerder besproken, heeft Python verschillende webscraping-bibliotheken. Vandaag zullen we de volgende bibliotheken gebruiken:

  • verzoeken – voor het doen van HTTP-verzoeken aan de website
  • Mooie soep – voor het ontleden van de HTML-code
  • panda's - voor het opslaan van de geschraapte gegevens in een dataframe
  • niet de tijd of – voor het toevoegen van een vertraging tussen verzoeken om te voorkomen dat de website wordt overspoeld met verzoeken

Installeer de bibliotheken met behulp van de volgende opdracht

pip install requests beautifulsoup4 pandas time

Stap 4: Schrijf de Python-code

Nu is het tijd om de belangrijkste python-code te schrijven. De code voert de volgende stappen uit:

  • Verzoeken gebruiken om een ​​HTTP GET-verzoek te verzenden
  • BeautifulSoup gebruiken om de HTML-code te ontleden
  • Extraheren van de vereiste gegevens uit de HTML-code
  • Sla de informatie op in een panda-dataframe
  • Voeg een vertraging toe tussen verzoeken om te voorkomen dat de website wordt overspoeld met verzoeken

Hier is de Python-code om de best beoordeelde films van IMDb te schrapen:

import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
# URL of the website to scrape
url = "https://www.imdb.com/chart/top"
# Send an HTTP GET request to the website
response = requests.get(url)
# Parse the HTML code using BeautifulSoup
soup = BeautifulSoup(response.content, 'html.parser')
# Extract the relevant information from the HTML code
movies = []
for row in soup.select('tbody.lister-list tr'):
title = row.find('td', class_='titleColumn').find('a').get_text()
year = row.find('td', class_='titleColumn').find('span', class_='secondaryInfo').get_text()[1:-1]
rating = row.find('td', class_='ratingColumn imdbRating').find('strong').get_text()
movies.append([title, year, rating])
# Store the information in a pandas dataframe
df = pd.DataFrame(movies, columns=['Title', 'Year', 'Rating'])
# Add a delay between requests to avoid overwhelming the website with requests
time.sleep(1)

Stap 5: de geëxtraheerde gegevens exporteren

Laten we nu de gegevens exporteren als een CSV-bestand. We zullen de pandabibliotheek gebruiken.

# Export the data to a CSV file
df.to_csv('top-rated-movies.csv', index=False)

Stap 6: Controleer de geëxtraheerde gegevens

Open het CSV-bestand om te controleren of de gegevens met succes zijn geschraapt en opgeslagen.

We hopen dat deze zelfstudie u zal helpen om eenvoudig gegevens van webpagina's te extraheren.


Extraheer tekst van elke webpagina met slechts één klik. Ga naar Websiteschraper van Nanonets, Voeg de URL toe en klik op "Schrapen" en download de webpagina-tekst direct als een bestand. Probeer het nu gratis.


Hoe tekst van de website te ontleden?

U kunt websitetekst eenvoudig ontleden met behulp van BeautifulSoup of lxml. Hier zijn de betrokken stappen samen met de code.

  • We sturen een HTTP-verzoek naar de URL en halen de HTML-inhoud van de webpagina op.
  • Zodra u de HTML-structuur heeft, gebruiken we de methode find() van BeautifulSoup om een ​​specifieke HTML-tag of -attribuut te lokaliseren.
  • En extraheer vervolgens de tekstinhoud met het tekstkenmerk.

Hier is een code voor het ontleden van tekst van een website met behulp van BeautifulSoup:

import requests
from bs4 import BeautifulSoup
# Send an HTTP request to the URL of the webpage you want to access
response = requests.get("https://www.example.com")
# Parse the HTML content using BeautifulSoup
soup = BeautifulSoup(response.content, "html.parser")
# Extract the text content of the webpage
text = soup.get_text()
print(text)

Hoe HTML-formulieren te schrapen met Python?

Om HTML-formulieren te schrapen met Python, kunt u een bibliotheek zoals BeautifulSoup, lxml of mechaniseren gebruiken. Dit zijn de algemene stappen:

  1. Stuur een HTTP-verzoek naar de URL van de webpagina met het formulier dat u wilt schrapen. De server reageert op het verzoek door de HTML-inhoud van de webpagina terug te sturen.
  2. Zodra u toegang heeft tot de HTML-inhoud, kunt u een HTML-parser gebruiken om het formulier te lokaliseren dat u wilt schrapen. U kunt bijvoorbeeld de methode find() van BeautifulSoup gebruiken om de formuliertag te vinden.
  3. Zodra u het formulier heeft gevonden, kunt u de invoervelden en de bijbehorende waarden extraheren met behulp van de HTML-parser. U kunt bijvoorbeeld de methode find_all() van BeautifulSoup gebruiken om alle invoertags in het formulier te lokaliseren en vervolgens hun naam- en waardekenmerken te extraheren.
  4. U kunt deze gegevens vervolgens gebruiken om het formulier in te dienen of verdere gegevensverwerking uit te voeren.

Hier is een voorbeeld van hoe u een HTML-formulier kunt schrapen met behulp van mechanisatie:


import mechanize
# Create a mechanize browser object
browser = mechanize.Browser()
# Send an HTTP request to the URL of the webpage with the form you want to scrape
browser.open("https://www.example.com/form")
# Select the form to scrape
browser.select_form(nr=0)
# Extract the input fields and their corresponding values
for control in browser.form.controls:
print(control.name, control.value)
# Submit the form
browser.submit()

Extraheer tekst van elke webpagina met slechts één klik. Ga naar Nanonets website scraper, voeg de URL toe en klik op "Scrape" en download de webpagina-tekst direct als een bestand. Probeer het nu gratis.


Alle Python-webscraping-bibliotheken vergelijken

Laten we alle python-webscraping-bibliotheken vergelijken. Ze hebben allemaal uitstekende community-ondersteuning, maar ze verschillen in gebruiksgemak en hun use-cases, zoals vermeld in het begin van de blog.

Bibliotheek

Makkelijk te gebruiken

Performance

Flexibiliteit

Community Support

Juridische/ethische overwegingen

Mooie soep

Eenvoudige

Matig

Hoge

Hoge

Houd u aan de gebruiksvoorwaarden

Scrapy

Matig

Hoge

Hoge

Hoge

Houd u aan de gebruiksvoorwaarden

Selenium

Eenvoudige

Matig

Hoge

Hoge

Volg Best Practices

Aanvragen

Eenvoudige

Hoge

Hoge

Hoge

Houd u aan de gebruiksvoorwaarden

PyQuery

Eenvoudige

Hoge

Hoge

Hoge

Houd u aan de gebruiksvoorwaarden

LXML

Matig

Hoge

Hoge

Hoge

Houd u aan de gebruiksvoorwaarden

MechanischeSoep

Eenvoudige

Matig

Hoge

Hoge

Houd u aan de gebruiksvoorwaarden

MooiSoep4

Eenvoudige

Matig

Hoge

Hoge

Houd u aan de gebruiksvoorwaarden

PySpider

Eenvoudige

Hoge

Hoge

Hoge

Houd u aan de gebruiksvoorwaarden

Conclusie

Python is een uitstekende optie om websitegegevens in realtime te schrapen. Een ander alternatief is om geautomatiseerd te gebruiken tools voor het schrapen van websites like Nanonets. U kunt de gratis website-naar-tekst-tool. Maar als u webscraping voor grotere projecten moet automatiseren, kunt u contact opnemen met Nanonets.

Extraheer tekst van elke webpagina met slechts één klik. Ga naar Nanonets website scraper, voeg de URL toe en klik op "Scrape" en download de webpagina-tekst direct als een bestand. Probeer het nu gratis.

Veelgestelde vragen

Hoe HTML-parser te gebruiken voor webschrapen met Python?

Om een ​​HTML-parser te gebruiken voor webscraping in Python, kunt u een bibliotheek zoals BeautifulSoup of lxml gebruiken. Dit zijn de algemene stappen:

  1. Stuur een HTTP-verzoek naar de URL van de webpagina die u wilt openen. De server reageert op het verzoek door de HTML-inhoud van de webpagina terug te sturen.
  2. Zodra u toegang heeft tot de HTML-inhoud, kunt u een HTML-parser gebruiken om de benodigde gegevens te extraheren. U kunt bijvoorbeeld de methode find() van BeautifulSoup gebruiken om een ​​specifieke HTML-tag of -kenmerk te lokaliseren en vervolgens de tekstinhoud extraheren met het tekstkenmerk.

Hier is een voorbeeld van het gebruik van BeautifulSoup voor webschrapen:

python

importaanvragen

van bs4 importeer BeautifulSoup

# Stuur een HTTP-verzoek naar de URL van de webpagina die u wilt openen

antwoord = verzoeken.get(“https://www.example.com”)

# Parseer de HTML-inhoud met behulp van BeautifulSoup

soep = BeautifulSoup(response.content, “html.parser”)

# Extraheer specifieke gegevens van de webpagina

titel = soep.titel

afdrukken(titel)

In dit voorbeeld gebruiken we BeautifulSoup om de HTML-inhoud van de webpagina te ontleden en de titel van de pagina te extraheren met behulp van het titelkenmerk.

Waarom wordt webscraping gebruikt?

Webschrapen wordt gebruikt om websitegegevens te schrapen met behulp van geautomatiseerde tools of scripts. Het kan voor meerdere doeleinden worden gebruikt

  • Gegevens extraheren van meerdere webpagina's en de gegevens samenvoegen om verdere analyse uit te voeren.
  • Trends afleiden door realtime gegevens over verschillende tijdstempels te schrapen.
  • Monitoring van prijstrends van concurrenten.
  • Leads genereren door e-mails van websites te schrapen. 

Wat is webscraping?

Webschrapen Vroeger haalde ik gestructureerde gegevens uit ongestructureerde HTML-websites. Webscraping omvat het gebruik van geautomatiseerde tools voor webschrapen of scripts om complexe webpagina's te ontleden.

Is webscraping legaal?

Webschrapen is legaal wanneer u probeert openbaar beschikbare gegevens op een website te ontleden. Over het algemeen is webscraping voor persoonlijk gebruik of niet-commerciële doeleinden legaal. Het schrapen van gegevens die auteursrechtelijk beschermd zijn of die als vertrouwelijk of privé worden beschouwd, kan echter tot juridische problemen leiden.

In sommige gevallen kan webscraping de servicevoorwaarden van een website schenden. Veel websites bevatten voorwaarden die het automatisch schrapen van hun inhoud verbieden. Als een website-eigenaar ontdekt dat iemand zijn inhoud schrapt, kunnen ze juridische stappen ondernemen om dit te stoppen.

Waarom is Python goed voor webscraping?

Python is een populaire programmeertaal voor webscraping omdat het verschillende voordelen biedt:

  • Python heeft een eenvoudige en leesbare syntaxis en is gemakkelijk te leren voor beginners.
  • Python heeft een enorme community van ontwikkelaars die tools ontwikkelen voor verschillende taken, zoals webscraping.
  • Python heeft veel webscraping-bibliotheken zoals Beautiful Soup en Scrapy.
  • Python kan veel taken uitvoeren, zoals schrapen, het extraheren van websitegegevens naar Excel, interactie met HTML-formulieren en meer.
  • Python is schaalbaar, waardoor het geschikt is voor het schrapen van grote hoeveelheden gegevens.

Wat is een voorbeeld van webschrapen?

Webscraping is het extraheren van gegevens van webpagina's met behulp van geautomatiseerde scripts of tools. Webscraping wordt bijvoorbeeld gebruikt om e-mails van websites te schrapen voor het genereren van leads. Een ander voorbeeld van webschrapen is het extraheren van prijsinformatie van concurrenten om uw prijsstructuur te verbeteren.

Heeft webschrapen codering nodig?

Webschrapen zet ongestructureerde websitegegevens om in een gestructureerd formaat. Afgezien van het gebruik van codering om websites te schrapen, kunt u webscrapingtools zonder code gebruiken waarvoor helemaal geen codering nodig is.

spot_img

Laatste intelligentie

spot_img