Você nomeou seu arquivo bs4.py
. Portanto, o Python importa esse arquivo em vez do módulo bs4
e gera um erro, pois o arquivo não contém nada chamado BeautifulSoup
.
Use outro nome para o seu arquivo.
Eu instalei o bs4 usando
apt-get install python-bs4
Quando tento executar um script:
import urllib2
import bs4
url = "http://rads.stackoverflow.com/amzn/click/B007C9N4H8"
web_page = urllib2.urlopen(url)
page_text = web_page.read()
soup = bs4.BeautifulSoup(page_text)
print soup.title.string'
Eu recebo este erro:
Traceback (most recent call last):
File "./bs4.py", line 4, in <module>
import bs4
File "/home/pbmac/tmp/bs4.py", line 8, in <module>
soup = bs4.BeautifulSoup(page_text)
AttributeError: 'module' object has no attribute 'BeautifulSoup'
AINDA - quando eu executo direetly de dentro do python:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib2
>>> import bs4
>>> url = "http://rads.stackoverflow.com/amzn/click/B007C9N4H8"
>>> web_page = urllib2.urlopen(url)
>>> page_text = web_page.read()
>>> soup = bs4.BeautifulSoup(page_text)
>>> print soup.title.string
Amazon.com: The Muppets (2011): Jason Segel, Amy Adams, Chris Cooper, Rashida Jones: Amazon Instant Video
Qual é a resposta correta?
POR QUE é executado diretamente do python - mas NÃO como um arquivo separado?
Obrigado pat
Você nomeou seu arquivo bs4.py
. Portanto, o Python importa esse arquivo em vez do módulo bs4
e gera um erro, pois o arquivo não contém nada chamado BeautifulSoup
.
Use outro nome para o seu arquivo.