logo

Läsa valt webbsidainnehåll med Python Web Scraping

Nödvändig förutsättning: Ladda ner filer i Python Webbskrapa med BeautifulSoup Vi vet alla att Python är ett väldigt enkelt programmeringsspråk men det som gör det coolt är det stora antalet bibliotek med öppen källkod som skrivits för det. Requests är ett av de mest använda biblioteken. Det tillåter oss att öppna vilken HTTP/HTTPS-webbplats som helst och låta oss göra alla slags saker som vi normalt gör på webben och kan också spara sessioner, t.ex. cookie. Som vi alla vet är en webbsida bara en bit HTML-kod som skickas av webbservern till vår webbläsare som i sin tur omvandlas till den vackra sidan. Nu behöver vi en mekanism för att få tag i HTML-källkoden, det vill säga att hitta några speciella taggar med ett paket som heter BeautifulSoup. Installation:
pip3 install requests 
pip3 install beautifulsoup4 

Vi tar ett exempel genom att läsa en nyhetssajt Hindustan Times

Koden kan delas upp i tre delar.
  • Begär en webbsida
  • Inspekterar taggarna
  • Skriv ut lämpligt innehåll
Steg:
    Begär en webbsida:Först ser vi högerklicka på nyhetstexten för att se källkoden Läsa valt webbsidainnehåll med Python Web Scraping' title= Inspektera taggarna:Vi måste ta reda på i vilken kropp av källkoden som innehåller nyhetssektionen vi vill skrapa. Det är den under uli.e oordnade listan 'searchNews' som innehåller nyhetssektionen. Läsa valt webbsidainnehåll med Python Web Scraping' title= Obs! Nyhetstexten finns i ankartaggens textdel. En noggrann observation ger oss uppfattningen att alla nyheter är i li-listtaggar för den oordnade taggen. Läsa valt webbsidainnehåll med Python Web Scraping' title= Skriv ut lämpligt innehåll: The content is printed with the help of code given below. Python
    import requests from bs4 import BeautifulSoup def news(): # the target we want to open  url='http://www.hindustantimes.com/top-news' #open with GET method resp=requests.get(url) #http_respone 200 means OK status if resp.status_code==200: print('Successfully opened the web page') print('The news are as follow :-n') # we need a parserPython built-in HTML parser is enough . soup=BeautifulSoup(resp.text'html.parser') # l is the list which contains all the text i.e news  l=soup.find('ul'{'class':'searchNews'}) #now we want to print only the text part of the anchor. #find all the elements of a i.e anchor for i in l.findAll('a'): print(i.text) else: print('Error') news() 

    Produktion

    Successfully opened the web page The news are as follow :- Govt extends toll tax suspension use of old notes for utility bills extended till Nov 14 Modi Abe seal historic civil nuclear pact: What it means for India Rahul queues up at bank says it is to show solidarity with common man IS kills over 60 in Mosul victims dressed in orange and marked 'traitors' Rock On 2 review: Farhan Akhtar Arjun Rampal's band hasn't lost its magic Rumours of shortage in salt supply spark panic among consumers in UP Worrying truth: India ranks first in pneumonia diarrhoea deaths among kids To hell with romance here's why being single is the coolest way to be India vs England: Cheteshwar Pujara Murali Vijay make merry with tons in Rajkot Akshay-Bhumi SRK-Alia Ajay-Parineeti: Age difference doesn't matter anymore Currency ban: Only one-third have bank access; NE backward regions worst hit Nepal's central bank halts transactions with Rs 500 Rs 1000 Indian notes Political upheaval in Punjab after SC tells it to share Sutlej water Let's not kid ourselves with Trump what we have seen is what we will get Want to colour your hair? Try rose gold the hottest hair trend this winter 

Referenser



Skapa frågesport