Search code examples
pythonweb-scrapingbeautifulsoupurllib2

Using urllib and BeautifulSoup to retrieve info from web with Python


I can get the html page using urllib, and use BeautifulSoup to parse the html page, and it looks like that I have to generate file to be read from BeautifulSoup.

import urllib                                       
sock = urllib.urlopen("http://SOMEWHERE") 
htmlSource = sock.read()                            
sock.close()                                        
--> write to file

Is there a way to call BeautifulSoup without generating file from urllib?


Solution

  • from BeautifulSoup import BeautifulSoup
    
    soup = BeautifulSoup(htmlSource)
    

    No file writing needed: Just pass in the HTML string. You can also pass the object returned from urlopen directly:

    f = urllib.urlopen("http://SOMEWHERE") 
    soup = BeautifulSoup(f)