BeautifulSoup (html) не работает, говоря, не может вызвать модуль? - PullRequest
10 голосов
/ 30 июля 2010
import urllib2
import urllib
from BeautifulSoup import BeautifulSoup        # html
from BeautifulSoup import BeautifulStoneSoup     # xml
import BeautifulSoup                # everything
import re


f = o.open( 'http://www.google.com', p)
html = f.read()
f.close()


soup = BeautifulSoup(html)

Получение ошибки, когда в строке с sou = BeautifulSoup (html) говорится, что объект 'module' не может быть вызван.

Ответы [ 3 ]

25 голосов
/ 30 июля 2010

Ваш import BeautifulSoup заставляет BeautifulSoup обращаться к модулю, а не к классу, как это было после from BeautifulSoup import BeautifulSoup.Если вы собираетесь импортировать весь модуль, вы можете пропустить строку from ... или, возможно, потом переименовать класс:

from BeautifulSoup import BeautifulSoup 
Soup = BeautifulSoup
...
import BeautifulSoup
....
soup = Soup(html)
6 голосов
/ 30 июля 2010

@ Ответ Блэра имеет правильный уклон, но я бы выполнил некоторые вещи немного по-другому, т.е.

import BeautifulSoup
Soup = BeautifulSoup.BeautifulSoup

(рекомендуется) или

import BeautifulSoup
from BeautifulSoup import BeautifulSoup as Soup

(тоже неплохо).

0 голосов
/ 26 июня 2013

Установить BeautifulSoup4
sudo easy_install BeautifulSoup4

Рекомендация
из bs4 import BeautifulSoup

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...