Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen.

Door Sai Ashish Konchada
DeelTweetenDeelE-mail

Het schrapen van HTML kan lastig zijn, dus zorg ervoor dat je dit proces begrijpt met een beetje Python-oefening.

Twitter is een van de meest invloedrijke socialemediaplatforms ooit. Miljoenen mensen, waaronder toppolitici, beroemdheden en CEO's, gebruiken het platform elke dag om hun gedachten te delen.

Het trending-tabblad is een van de beste plaatsen om realtime nieuws en sentiment op sociale media te ontdekken. U kunt deze gegevens analyseren en gebruiken om merkadvertenties te plannen, campagnes uit te voeren en de verkoop per vouw te stimuleren. Maar hoe krijg je de top tien trending hashtags op Twitter?

Het bouwproces van algoritmen

De eerste stap bij het bouwen van een programma is het noteren en begrijpen van de stappen die nodig zijn om een ​​Twitter-scraper te bouwen. Zij zijn:

  1. Google Chrome openen.
  2. Bezoek de trending-pagina van Twitter.
  3. Verzamel de hashtags en hun respectieve paginalink.
  4. Sla de gegevens op in een spreadsheet.

Dit dient als het algoritme van de probleemstelling.

De Twitter-webpagina begrijpen

U moet weten hoe een webpagina zijn gegevens markeert voordat u deze kunt extraheren. Het helpt enorm als je er verstand van hebt de basis van HTML en CSS.

Volg deze stappen om erachter te komen hoe Twitter een trending hashtag en de bijbehorende URL vertegenwoordigt:

  1. Bezoek De trending-pagina van Twitter. U kunt ook navigeren naar Twitter. comOntdekkenPopulair om het te bekijken.
  2. Inspecteer de hoofdkolom Chrome Dev Tools gebruiken. Ga naar Menu (3 stippen)>Meer Hulpmiddelen >Hulpprogramma's voor ontwikkelaars en beweeg de tool voor het kiezen van elementen over het trendgebied.
  3. De trending tijdlijn is een div Met een aria-label attribuut waarvan de waarde is "Tijdlijn: verkennen". Plaats de muisaanwijzer op de opmaak in het Elementen paneel om de paginastructuur beter te begrijpen. Een andere div slaat de trending hashtag/onderwerp op. Gebruik deze div als teller en herhaal alle div's op de pagina die het trending topic/hashtag bevat. De inhoud wordt opgeslagen in een span of een paar overspanningselementen. Bekijk het geopende tabblad en let op de hiërarchie. U kunt dit gebruiken om een ​​XPath-expressie te construeren. De XPath-expressie voor dit specifieke element is:
    '//div[@aria-label="Tijdlijn: verkennen"]/div[1]/div[3]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
    Herhaal en doel div[3], div[4], div[5], enzovoort. Voor de top tien hashtags loopt de teller van 3 tot 13. De gegeneraliseerde XPath wordt:
    //div[@aria-label="Tijdlijn: verkennen"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
  4. Klik op een hashtag om de URL van de pagina's te begrijpen. Als u de URL's vergelijkt, zou u moeten opmerken dat alleen de queryparameter verandert om overeen te komen met de naam van de hashtag. U kunt dit inzicht gebruiken om URL's te bouwen zonder ze daadwerkelijk te extraheren.

Dit project maakt gebruik van de volgende Python-modules en -tools:

1. Panda's-module

Jij kan gebruik de klasse Panda's DataFrame om de hashtags en hun respectievelijke links in tabelvorm op te slaan. Dit is handig als het gaat om het toevoegen van deze inhoud aan een CSV-bestand dat u extern kunt delen.

2. Tijdsmodule

Gebruik de Time-module om een ​​vertraging toe te voegen aan het Python-programma, zodat de inhoud van de pagina volledig kan worden geladen. In dit voorbeeld wordt een vertraging van 15 seconden gebruikt, maar u kunt experimenteren en een geschikte vertraging kiezen voor uw omstandigheden.

3. Selenium-module

Selenium kan het proces van interactie met internet automatiseren. U kunt het gebruiken om een ​​exemplaar van een webbrowser te besturen, de trending-pagina te openen en naar beneden te scrollen. Om Selenium in uw Python-omgeving te installeren, opent u uw Terminal en uitvoerenpip installeren selenium.

4. Web-stuurprogramma

Gebruik een webstuurprogramma in combinatie met Selenium om met de browser te communiceren. Er zijn verschillende webstuurprogramma's beschikbaar op basis van de browser die u wilt automatiseren. Gebruik voor deze build de populaire Google Chrome-browser. De webdriver voor Chrome installeren:

  1. Controleer de versie van de browser die u gebruikt door naar de Menu (3 stippen) > Hulp>Over Google Chrome.
  2. Let op de versie van de browser; in dit geval is het 106.0.5249.62.
  3. Ga naar je Terminal en typ pip install chromedriver-binary==versienummer:
    Pip installeren chromedriver-binair==106.0.5249.62
    Als er geen overeenkomende versie is, toont pip je een lijst met beschikbare versies; kies degene die het dichtst bij uw Chrome-versie ligt.

Hoe de Twitter Scraper te bouwen

Volg deze stappen om uw programma samen te stellen en real-time trending hashtags te ontvangen. Hierin vindt u de volledige broncode GitHub-opslagplaats.

  1. Importeer de vereiste modules in de Python-omgeving.
    # de vereiste modules importeren
    van selenium importeren webstuurprogramma
    vanselenium.webstuurprogramma.gewoon.doorimporterenDoor
    importeren chromedriver_binair
    importeren tijd
    importeren panda's als pd
  2. Maak een object om de ChromeDriver te initialiseren en start de Google Chrome-browser met behulp van de webstuurprogramma. chroom() functie.
    # open de Google Chrome-browser
    browser = webstuurprogramma. chroom()
  3. Open de trending-pagina van Twitter door de URL door te geven aan de krijgen() functie.
    # open de trending-pagina van Twitter
    browser.get('https://twitter.com/explore/tabs/trending')
  4. Pas een vertraging toe zodat de inhoud van de pagina volledig wordt geladen.
    # vertraging voor het laden van pagina-inhoud
    tijd.slaap(15)
  5. Maak een lege lijst om de hashtags op te slaan en declareer een lus die loopt van 3 tot 13 om overeen te komen met de variabele in de XPath-expressie van eerder.
    # lijst initialiseren om trending topics en hashtags op te slaan
    trending_topic_content=[]

    # verzamel onderwerpen en hashtags op de trending-pagina van Twitter
    voor i in bereik (3,13):

  6. Gebruik de vind_element() functie en geef de XPath-selector door om de trending topics en hashtags op Twitter te krijgen:
    xpad = f'//div[@aria-label="Tijdlijn: verkennen"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
    trending_topic = browser.find_element (Door. XPATH, xpath)
    trending_topic_content.toevoegen(populair onderwerp.tekst)
  7. Maak een lege lijst om alle URL's op te slaan en declareer een lus die door alle hashtags loopt.
    # creëer URL's met behulp van de verzamelde hashtags
    URL's=[]
    voor ik in trending_topic_content:
    Gebruik de slice-operator om de hashtag weg te laten om de URL te maken en spaties te vervangen door URL-codering, %20. Voeg de links toe aan de lijst.
    als ik.begintmet("#"):
    ik = ik[1:]
    url='https://twitter.com/search? q=%23' + ik + '&src=trend_klik'
    anders:
    URL = 'https://twitter.com/search? q=' + ik + '&src=trend_klik'
    url = url.vervangen("", "%20")
    URL's.toevoegen(url)
  8. Maak een sleutel-waardepaar Woordenboek met sleutels als hashtags en waarden als hun URL's.
    # maak een woordenboek met zowel de hashtag als de URL's
    dic={'Hashtag':trending_topic_content,'URL':url's}
  9. Converteer het ongestructureerde woordenboek naar een dataframe in tabelvorm.
    # converteer het woordenboek naar een dataframe in panda's
    df=pd. Dataframe (dic)
    afdrukken(df)
  10. Sla de DataFrame op in een CSV-bestand dat u in Microsoft Excel kunt bekijken of verder kunt verwerken.
    # converteer het dataframe naar een door komma's gescheiden waarde-indeling zonder serienummers
    df.naar_csv("Twitter_HashTags.csv",index=Onwaar)

Krijg waardevolle inzichten met behulp van webscraping

Webscraping is een krachtige methode om gewenste gegevens te verkrijgen en te analyseren om beslissingen te nemen. Beautiful Soup is een indrukwekkende bibliotheek die u kunt installeren en gebruiken om met Python gegevens uit elk HTML- of XML-bestand te schrapen.

Hiermee kunt u het internet afstruinen om real-time nieuwskoppen, prijzen van producten, sportuitslagen, aandelenwaarde en meer te krijgen.

Schraap een website met deze prachtige Soup Python-zelfstudie

Lees Volgende

DeelTweetenDeelE-mail

Gerelateerde onderwerpen

  • Programmeren
  • Programmeren
  • Python
  • Webontwikkeling
  • Web schrapen
  • Twitteren

Over de auteur

Sai Ashish Konchada (3 artikelen gepubliceerd)

Sai Ashish is een Full Stack Developer met branche-ervaring in het bouwen van websites en webapplicaties. Hij houdt ervan om innovatieve producten te bouwen en inzichtelijke artikelen over programmeren te schrijven.

Meer van Sai Ashish Konchada

Opmerking

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve aanbiedingen!

Klik hier om u te abonneren

Op de draad

populair nu