Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision.

Förbi Sai Ashish Konchada
Dela med sigTweetDela med sigE-post

Att skrapa HTML kan vara krångligt, så se till att du förstår denna process med lite Python-övning.

Twitter är en av de mest inflytelserika sociala medieplattformarna som någonsin existerat. Miljontals människor inklusive toppolitiker, kändisar och VD: ar använder plattformen för att dela sina tankar varje dag.

Trendfliken är ett av de bästa ställena för att ta reda på nyheter i realtid och känslor i sociala medier. Du kan analysera och använda denna data för att planera varumärkesannonser, köra kampanjer och öka försäljningen med veck. Men hur kan du få de tio populäraste hashtaggarna på Twitter?

Algoritmbyggnadsprocessen

Det första steget för att bygga ett program är att notera och förstå de steg som krävs för att bygga en Twitter-skrapa. Dom är:

  1. Öppna Google Chrome.
  2. Besök Twitters trendsida.
  3. Samla hashtags och deras respektive sidlänk.
  4. Spara data i ett kalkylblad.

Detta fungerar som algoritmen för problemformuleringen.

Förstå Twitter-webbsidan

Du måste veta hur en webbsida markerar sina data innan du kan extrahera den. Det hjälper mycket om du har god förståelse för grunderna i HTML och CSS.

Följ dessa steg för att ta reda på hur Twitter representerar en trendig hashtag och dess URL:

  1. Besök Twitters trendsida. Du kan också navigera till Twitter.comUtforskaTrendigt för att se den.
  2. Inspektera huvudkolumnen med Chrome Dev Tools. Gå till Meny (3 punkter)>Fler verktyg >Utvecklarverktyg och för elementväljaren över trendområdet.
  3. Den trendiga tidslinjen är en div med en aria-etikett attribut vars värde är "Tidslinje: Utforska". Håll muspekaren över markeringen i Element panel för att bättre förstå sidstrukturen. Annan div lagrar den populära hashtaggen/ämnet. Använd denna div som en räknare och iterera till alla div: er på sidan som innehåller trendämnet/hashtaggen. Innehållet lagras inom en spänna eller ett par spännelement. Observera den öppna fliken och notera hierarkin. Du kan använda detta för att konstruera ett XPath-uttryck. XPath-uttrycket för detta specifika element är:
    '//div[@aria-label="Tidslinje: Utforska"]/div[1]/div[3]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
    Iterera och mål div[3], div[4], div[5] och så vidare. För de tio bästa hashtaggarna går räknaren från 3 till 13. Den generaliserade XPath blir:
    //div[@aria-label="Tidslinje: Utforska"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
  4. Klicka på valfri hashtag för att förstå webbadressen till dess sidor. Om du jämför webbadresserna bör du märka att endast frågeparametern ändras för att matcha hashtaggens namn. Du kan använda den här insikten för att bygga webbadresser utan att faktiskt extrahera dem.

Detta projekt använder följande Python-moduler och verktyg:

1. Pandamodul

Du kan använd Pandas DataFrame-klassen för att lagra hashtaggarna och deras respektive länkar i ett tabellformat. Detta kommer att vara användbart när det gäller att lägga till detta innehåll till en CSV-fil som du kan dela externt.

2. Tidsmodul

Använd Time-modulen för att lägga till en fördröjning till Python-programmet så att sidinnehållet kan laddas helt. Det här exemplet använder en fördröjning på 15 sekunder, men du kan experimentera och välja en lämplig fördröjning för dina omständigheter.

3. Selenmodul

Selen kan automatisera processen att interagera med webben. Du kan använda den för att styra en instans av en webbläsare, öppna trendsidan och rulla ner den. För att installera Selenium i din Python-miljö, öppna din Terminal och verkställapip installera selen.

4. Webb drivrutin

Använd en webbdrivrutin i kombination med Selenium för att interagera med webbläsaren. Det finns olika webbdrivrutiner tillgängliga baserat på webbläsaren du vill automatisera. Använd den populära webbläsaren Google Chrome för denna version. Så här installerar du webbdrivrutinen för Chrome:

  1. Kontrollera vilken version av webbläsaren du använder genom att besöka Meny (3 punkter) > Hjälp>Om Google Chrome.
  2. Notera versionen av webbläsaren; i det här fallet är det 106.0.5249.62.
  3. Gå till din Terminal och typ pip installera chromedriver-binary==versionsnummer:
    pip Installera chromedriver-binär==106.0.5249.62
    Om det inte finns någon matchande version kommer pip att visa dig en lista över de tillgängliga; välj den som ligger närmast din kromversion.

Hur man bygger Twitter-skrapan

Följ dessa steg för att bygga ditt program och få trendiga hashtags i realtid. Du kan hitta hela källkoden i denna GitHub Repository.

  1. Importera de nödvändiga modulerna till Python-miljön.
    # importera de nödvändiga modulerna
    från selen importera webbdrivrutin
    frånselen.webdriver.allmänning.förbiimporteraFörbi
    importera chromedriver_binary
    importera tid
    importera pandor som pd
  2. Skapa ett objekt för att initiera ChromeDriver och starta webbläsaren Google Chrome med hjälp av webbdrivrutin. Krom() fungera.
    # öppna webbläsaren Google chrome
    webbläsare = webbdrivrutin. Krom()
  3. Öppna Twitters trendsida genom att skicka dess URL till skaffa sig() fungera.
    # öppna trendsidan på Twitter
    browser.get('https://twitter.com/explore/tabs/trending')
  4. Använd en fördröjning så att sidans innehåll laddas helt.
    # fördröjning för inläsning av sidinnehåll
    tid.sova(15)
  5. Skapa en tom lista för att lagra hashtaggarna och deklarera en loop som går från 3 till 13 för att matcha variabeln i XPath-uttrycket från tidigare.
    # initiera listan för att lagra trendämnen och hashtags
    trending_topic_content=[]

    # samla in ämnen och hashtags på Twitters trendsida
    för i inom intervallet (3,13):

  6. Använd find_element() funktion och skicka XPath-väljaren för att få trendämnen och hashtags på Twitter:
    xpath = f'//div[@aria-label="Tidslinje: Utforska"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
    trending_topic = browser.find_element (av. XPATH, xpath)
    trending_topic_content.bifoga(trending_topic.text)
  7. Skapa en tom lista för att lagra alla webbadresser och deklarera en loop som går igenom alla hashtags.
    # skapa webbadresser med de insamlade hashtaggarna
    webbadresser=[]
    för mig i trending_topic_content:
    Använd segmentoperatorn för att utelämna hashtaggen för att skapa dess URL och ersätta mellanslag med URL-kodning, %20. Lägg till länkarna i listan.
    om jag börjar med("#"):
    i = jag[1:]
    url='https://twitter.com/search? q=%23' + i + '&src=trend_klick'
    annan:
    url = 'https://twitter.com/search? q=' + i + '&src=trend_klick'
    url = url.replace("", "%20")
    webbadresser.bifoga(url)
  8. Skapa en nyckel-värde par ordbok med nycklar som hashtags och värden som deras webbadresser.
    # skapa en ordbok som har både hashtaggen och webbadresserna
    dic={'HashTag':trending_topic_content,'URL':urls}
  9. Konvertera den ostrukturerade ordboken till en tabellformad DataFrame.
    # konvertera ordboken till en dataram i pandor
    df=pd. DataFrame (dic)
    skriva ut(df)
  10. Spara DataFrame till en CSV-fil som du kan se i Microsoft Excel eller bearbeta vidare.
    # konvertera dataramen till format med kommaseparerade värden utan serienummer
    df.to_csv("Twitter_HashTags.csv",index=False)

Få värdefulla insikter med webbskrapning

Webbskrapning är en kraftfull metod för att få fram önskad data och analysera den för att fatta beslut. Beautiful Soup är ett imponerande bibliotek som du kan installera och använda för att skrapa data från vilken HTML- eller XML-fil som helst med Python.

Med detta kan du skrapa internet för att få nyhetsrubriker i realtid, priser på produkter, sportresultat, aktievärde och mer.

Skrapa en webbplats med denna vackra Soup Python Tutorial

Läs Nästa

Dela med sigTweetDela med sigE-post

Relaterade ämnen

  • Programmering
  • Programmering
  • Pytonorm
  • Webbutveckling
  • Web skrapning
  • Twitter

Om författaren

Sai Ashish Konchada (3 artiklar publicerade)

Sai Ashish är en Full Stack-utvecklare med branscherfarenhet av att bygga webbplatser och webbapplikationer. Han älskar att bygga innovativa produkter och skriva insiktsfulla artiklar om programmering.

Mer från Sai Ashish Konchada

Kommentar

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera

På Tråden

trendar nu