BeautifulSoup responses with error
beautifulsoup, html, html-parsing, python
Solution
You are passing URL as a string. Instead you need to get the page source via `urllib2` or `requests`:
from urllib2 import urlopen # for Python 3: from urllib.request import urlopen
from bs4 import BeautifulSoup
URL = 'https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=5....1b&per_page=250&accuracy=1&has_geo=1&extras=geo,tags,views,description'
soup = BeautifulSoup(urlopen(URL))
Note that you don't need to call `read()` on the result of `urlopen()`, `BeautifulSoup` allows the first argument to be a file-like object, `urlopen()` returns a file-like object.
Problem
I am trying to get my feet wet with BS. I tried to work my way through the documentation butat the very first step I encountered already a problem. This is my code: ``` from bs4 import BeautifulSoup soup = BeautifulSoup('https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=5....1b&per_page=250&accuracy=1&has_geo=1&extras=geo,tags,views,description') print(soup.prettify()) ``` This is the response I get: ``` Warning (from warnings module): File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/bs4/__init__.py", line 189 '"%s" looks like a URL. Beautiful Soup is not an HTTP client. You should probably use an HTTP client to get the document behind the URL, and feed that document to Beautiful Soup.' % markup) UserWarning: "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=5...b&per_page=250&accuracy=1&has_geo=1&extras=geo,tags,views,description" looks like a URL. Beautiful Soup is not an HTTP client. You should probably use an HTTP client to get the document behind the URL, and feed that document to Beautiful Soup. https://api.flickr.com/services/rest/?method=flickr.photos.search&api;_key=5...b&per;_page=250&accuracy;=1&has;_geo=1&extras;=geo,tags,views,description ``` Is it because I try to call http**s** or is it another problem? Thanks for your help!