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.
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:
- Öppna Google Chrome.
- Besök Twitters trendsida.
- Samla hashtags och deras respektive sidlänk.
- 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:
- Besök Twitters trendsida. Du kan också navigera till Twitter.com → Utforska → Trendigt för att se den.
- Inspektera huvudkolumnen med Chrome Dev Tools. Gå till Meny (3 punkter)>Fler verktyg >Utvecklarverktyg och för elementväljaren över trendområdet.
- 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:
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[3]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
//div[@aria-label="Tidslinje: Utforska"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
- 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:
- Kontrollera vilken version av webbläsaren du använder genom att besöka Meny (3 punkter) > Hjälp>Om Google Chrome.
- Notera versionen av webbläsaren; i det här fallet är det 106.0.5249.62.
- Gå till din Terminal och typ pip installera chromedriver-binary==versionsnummer:
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.pip Installera chromedriver-binär==106.0.5249.62
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.
- 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 - 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() - Öppna Twitters trendsida genom att skicka dess URL till skaffa sig() fungera.
# öppna trendsidan på Twitter
browser.get('https://twitter.com/explore/tabs/trending') - 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) - 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): - 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) - Skapa en tom lista för att lagra alla webbadresser och deklarera en loop som går igenom alla hashtags.
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.# skapa webbadresser med de insamlade hashtaggarna
webbadresser=[]
för mig i trending_topic_content: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) - 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} - Konvertera den ostrukturerade ordboken till en tabellformad DataFrame.
# konvertera ordboken till en dataram i pandor
df=pd. DataFrame (dic)
skriva ut(df) - 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.