웹 페이지 스크래퍼를 만들려고하는데 BeautifulSoup을 사용하고 싶습니다. 웹 사이트가 Python 3.x와 호환되었다고 말하면서 BeautifulSoup 4.3.2를 설치했습니다. 사용하려면BeautifulSoup4 Python 3.x에서 오류가 발생했습니다.
pip install beautifulsoup4
을 사용하십시오. 내가
from bs4 import BeautifulSoup
import requests
url = input("Enter a URL (start with www): ")
link = "http://" + url
data = requests.get(link).content
soup = BeautifulSoup(data)
for link in soup.find_all('a'):
print(link.get('href'))
을 실행할 때 내가 특별히 여기에,
Traceback (most recent call last):
File "/Users/user/Desktop/project.py", line 1, in <module>
from bs4 import BeautifulSoup
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/site-packages /bs4/__init__.py", line 30, in <module>
from .builder import builder_registry, ParserRejectedMarkup
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/site-packages/bs4/builder /__init__.py", line 308, in <module>
from .. import _htmlparser
ImportError: cannot import name _htmlparser
대신'data = link.text'를'data = requests.get (link) .content'로 바꾸고 코드를 다시 실행해볼 수 있습니까? 내가 본 것을 보았을 때 URL의 내용을 얻기 위해'Requests'를 호출하지 않고 그냥'link.text'로 곧바로갔습니다. – Manhattan
위에서 언급 한 변경 사항을 적용했지만 BeautifulSoup의 가져 오기 오류를 지나치지는 않습니다. Python 2에서 작동하는 것으로 알고 있습니다.7하지만 im은 python 3을 사용해야하고 왜 제대로 가져 오지 않는지 이해하지 못합니다. – heyItsTy1992
이 버그에 대한 관련 토론은 [this] (http://bugs.python.org/issue14538)를 참조하십시오. * 최신 * Python 3.x 릴리스를 사용해 보셨습니까? 나는이 문제가 존재하지 않는 곳에서 2.7을 사용하여 정말로 논평 할 수 없다. 그래도 파이썬 3.x로 확인합니다 ... – Manhattan