Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

BeautifulSoup을 사용하여 Python에서 웹 스크래핑을 구현하시겠습니까?

<시간/>

BeautifulSoup은 파이썬의 bs4 모듈에 있는 클래스입니다. Beautifulsoup을 구축하는 기본 목적은 HTML 또는 XML 문서를 구문 분석하는 것입니다.

bs4 설치(줄여서 Beautifulsoup)

아름다운 수프는 pip 모듈을 사용하여 쉽게 설치할 수 있습니다. 명령 셸에서 아래 명령을 실행하기만 하면 됩니다.

pip 설치 bs4

터미널에서 위의 명령을 실행하면 -

와 같은 화면이 표시됩니다. C:\Users\rajesh>pip install bs4Collecting bs4Downloading https://files.pythonhosted.org/packages/10/ed/7e8b97591f6f456174139ec089c769f89a94a1a40935de9716 \python361\lib\site-packages (from bs4) (4.6.0)수집된 패키지용 빌딩 휠:bs4bs4용 빌딩 휠(setup.py) ... done디렉토리에 저장됨:C:\Users\rajesh\AppData\Local\ pip\Cache\wheels\a0\b0\b2\4f80b9456b87abedbc0bf2d52235414c3467d8889be38dd472성공적으로 구축 bs4수집된 패키지 설치:bs4bs4-0.0.1을 성공적으로 설치

BeautifulSoup이 컴퓨터에 성공적으로 설치되었는지 확인하려면 동일한 터미널에서 아래 명령을 실행하세요-

C:\Users\rajesh>pythonPython 3.6.1(v3.6.1:69c0db5, 2017년 3월 21일, 17:54:52) [MSC v.1900 32비트(인텔)] on win32Type "help", "copyright 자세한 내용은 ", "크레딧" 또는 "라이센스"를 참조하십시오.>>> bs4 import BeautifulSoup>
>>

성공했습니다. 훌륭합니다!.

예시 1

html 문서에서 모든 링크 찾기 이제 HTML 문서가 있고 문서의 모든 참조 링크를 수집하려고 한다고 가정합니다. 따라서 먼저 문서를 아래와 같은 문자열로 저장합니다 -

html_doc=''''''

이제 beautifulSoup의 초기화 함수에 위의 변수 html_doc를 전달하여 수프 개체를 생성합니다.

bs4 import BeautifulSoupsoup =BeautifulSoup(html_doc, 'html.parser')

이제 수프 개체가 있으므로 여기에 BeautifulSoup 클래스의 메서드를 적용할 수 있습니다. 이제 html_doc에 제공된 속성에서 태그의 모든 속성과 값을 찾을 수 있습니다.

sup.find_all('a'):print(tag.get('href'))의 태그용

위의 코드에서 루프를 통해 html_doc 문자열의 모든 링크를 가져오고 문서의 모든 를 가져오고 href 속성을 가져오려고 합니다.

다음은 html_doc 문자열에서 모든 링크를 가져오는 전체 코드입니다.

bs4 import BeautifulSouphtml_doc=''''''soup =BeautifulSoup(html_doc, 'html.parser ')sup.find_all('a'):print(tag.get('href'))
의 태그용

결과

www.Tutorialspoint.comwww.nseindia.com.comwww.codesdope.comwww.google.comwww.facebook.comwww.wikipedia.orgwww.twitter.comwww.microsoft.comwww.github.comwww.nytimes.comwww.youtube.comwww .reddit.comwww.python.orgwww.stackoverflow.comwww.amazon.comwww.rediff.com

예시 2

링크에 언급된 특정 요소(예:python)가 있는 웹사이트의 모든 링크를 인쇄합니다.

아래 프로그램은 링크에 "python"이 포함된 특정 웹사이트의 모든 URL을 인쇄합니다.

bs4 import BeautifulSoupfrom urllib.request import urlopenimport rehtml =urlopen("https://www.python.org")content =html.read()soup =BeautifulSoup(content)for a in 수프.findAll('a ',href=True):if re.findall('파이썬', a['href']):print("파이썬 URL:", a['href'])

결과

파이썬 URL:https://docs.python.org파이썬 URL:https://pypi.python.org/파이썬 URL:https://www.facebook.com/pythonlang?fref=tsPython URL:http:/ /brochure.getpython.info/Python URL:https://docs.python.org/3/license.htmlPython URL:https://wiki.python.org/moin/BeginnersGuidePython URL:https://devguide.python. org/Python URL:https://docs.python.org/faq/Python URL:https://wiki.python.org/moin/LanguagesPython URL:https://python.org/dev/peps/Python URL:https://wiki.python.org/moin/PythonBooksPython URL:https://wiki.python.org/moin/Python URL:https://www.python.org/psf/codeofconduct/Python URL:http:/ /planetpython.org/Python URL:/events/python-eventsPython URL:/events/python-user-group/Python URL:/events/python-events/past/Python URL:/events/python-user-group/past /파이썬 URL:https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_EventPython URL://docs.python.org/3/tutorial/controlflow.html#defining-functions파이썬 URL://docs.python.org/ 3/tutorial/introduction.html#li stsPython URL:https://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculatorPython URL://docs.python.org/3/tutorial/Python URL://docs .python.org/3/tutorial/controlflow.htmlPython URL:/downloads/release/python-373/Python URL:https://docs.python.orgPython URL://jobs.python.orgPython URL:https:// blog.python.org파이썬 URL:https://feedproxy.google.com/~r/PythonInsider/~3/Joo0vg55HKo/python-373-is-now-available.html파이썬 URL:https://feedproxy.google.com/ ~r/PythonInsider/~3/N5tvkDIQ47g/python-3410-is-now-available.html파이썬 URL:https://feedproxy.google.com/~r/PythonInsider/~3/n0mOibtx6_A/python-3.html파이썬 URL:/events/python-events/805/Python URL:/events/python-events/817/Python URL:/events/python-user-group/814/Python URL:/events/python-events/789/Python URL:/events/python-events/831/Python URL:/success-stories/building-an-open-source-and-cross-platform-azure-cli-with-python/Python URL:/success-stories/building-an -오픈 소스 및 크로스 플랫폼-azure-cli-wit h-python/Python URL:https://wiki.python.org/moin/TkInterPython URL:https://www.wxpython.org/Python URL:https://ipython.orgPython URL:#python-networkPython URL:https://brochure.getpython.info/Python URL:https://docs.python.org/3/license.htmlPython URL:https://wiki.python.org/moin/BeginnersGuidePython URL:https://devguide .python.org/Python URL:https://docs.python.org/faq/Python URL:https://wiki.python.org/moin/LanguagesPython URL:https://python.org/dev/peps/ 파이썬 URL:https://wiki.python.org/moin/PythonBooksPython URL:https://wiki.python.org/moin/Python URL:https://www.python.org/psf/codeofconduct/Python URL:https://planetpython.org/Python URL:/events/python-eventsPython URL:/events/python-user-group/Python URL:/events/python-events/past/Python URL:/events/python-user- group/past/Python URL:https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_EventPython URL:https://devguide.python.org/Python URL:https://bugs.python.org/Python URL:https://mail.python.org/mailman /listinfo/python-devPython URL:#python-networkPython URL:https://github.com/python/pythondotorg/issuesPython URL:https://status.python.org/