BeautifulSoup เป็นคลาสในโมดูล bs4 ของ python จุดประสงค์พื้นฐานของการสร้าง beautifulsoup คือการแยกวิเคราะห์เอกสาร HTML หรือ XML
กำลังติดตั้ง bs4 (ชื่อย่อ beautifulsoup)
ง่ายต่อการติดตั้ง beautifulsoup โดยใช้ pip module เพียงเรียกใช้คำสั่งด้านล่างบน command shell ของคุณ
pip install bs4
การรันคำสั่งด้านบนบนเทอร์มินัล จะเห็นหน้าจอของคุณประมาณ -
C:\Users\rajesh>pip install bs4 Collecting bs4 Downloading https://files.pythonhosted.org/packages/10/ed/7e8b97591f6f456174139ec089c769f89a94a1a4025fe967691de971f314/bs4-0.0.1.tar.gz Requirement already satisfied: beautifulsoup4 in c:\python\python361\lib\site-packages (from bs4) (4.6.0) Building wheels for collected packages: bs4 Building wheel for bs4 (setup.py) ... done Stored in directory: C:\Users\rajesh\AppData\Local\pip\Cache\wheels\a0\b0\b2\4f80b9456b87abedbc0bf2d52235414c3467d8889be38dd472 Successfully built bs4 Installing collected packages: bs4 Successfully installed bs4-0.0.1
ในการตรวจสอบว่าติดตั้ง BeautifulSoup สำเร็จในเครื่องของคุณหรือไม่ เพียงเรียกใช้คำสั่งด้านล่างในเทอร์มินัลเดียวกัน
C:\Users\rajesh>python Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> from bs4 import BeautifulSoup >>>
สำเร็จ ยิ่งใหญ่!.
ตัวอย่างที่ 1
ค้นหาลิงก์ทั้งหมดจากเอกสาร html ตอนนี้ สมมติว่าเรามีเอกสาร HTML และเราต้องการรวบรวมลิงก์อ้างอิงทั้งหมดในเอกสาร ก่อนอื่นเราจะเก็บเอกสารเป็นสตริงดังนี้ −
html_doc='''<a href='wwww.Tutorialspoint.com.com'/a> <a href='wwww.nseindia.com.com'/a> <a href='wwww.codesdope.com'/a> <a href='wwww.google.com'/a> <a href='wwww.facebook.com'/a> <a href='wwww.wikipedia.org'/a> <a href='wwww.twitter.com'/a> <a href='wwww.microsoft.com'/a> <a href='wwww.github.com'/a> <a href='wwww.nytimes.com'/a> <a href='wwww.youtube.com'/a> <a href='wwww.reddit.com'/a> <a href='wwww.python.org'/a> <a href='wwww.stackoverflow.com'/a> <a href='wwww.amazon.com'/a> <a href=‘wwww.linkedin.com'/a> <a href='wwww.finace.google.com'/a>'''
ตอนนี้เราจะสร้างวัตถุซุปโดยส่งตัวแปรด้านบน html_doc ในฟังก์ชันเริ่มต้นของ beautifulSoup
from bs4 import BeautifulSoup soup = BeautifulSoup(html_doc, 'html.parser')
ตอนนี้เรามีวัตถุซุปแล้ว เราสามารถใช้เมธอดของคลาส BeautifulSoup กับมันได้ ตอนนี้ เราสามารถค้นหาแอตทริบิวต์ทั้งหมดของแท็กและค่าในแอตทริบิวต์ที่ระบุใน html_doc ได้
for tag in soup.find_all('a'): print(tag.get('href'))
จากโค้ดด้านบนนี้ เรากำลังพยายามดึงลิงก์ทั้งหมดในสตริง html_doc ผ่านลูปเพื่อรับทุก ในเอกสารและรับแอตทริบิวต์ href
ด้านล่างนี้คือโค้ดที่สมบูรณ์ของเราในการรับลิงก์ทั้งหมดจากสตริง html_doc
from bs4 import BeautifulSoup html_doc='''<a href='www.Tutorialspoint.com'/a> <a href='www.nseindia.com.com'/a> <a href='www.codesdope.com'/a> <a href='www.google.com'/a> <a href='www.facebook.com'/a> <a href='www.wikipedia.org'/a> <a href='www.twitter.com'/a> <a href='www.microsoft.com'/a> <a href='www.github.com'/a> <a href='www.nytimes.com'/a> <a href='www.youtube.com'/a> <a href='www.reddit.com'/a> <a href='www.python.org'/a> <a href='www.stackoverflow.com'/a> <a href='www.amazon.com'/a> <a href='www.rediff.com'/a>''' soup = BeautifulSoup(html_doc, 'html.parser') for tag in soup.find_all('a'): print(tag.get('href'))
ผลลัพธ์
www.Tutorialspoint.com www.nseindia.com.com www.codesdope.com www.google.com www.facebook.com www.wikipedia.org www.twitter.com www.microsoft.com www.github.com www.nytimes.com www.youtube.com www.reddit.com www.python.org www.stackoverflow.com www.amazon.com www.rediff.com
ตัวอย่างที่ 2
พิมพ์ลิงก์ทั้งหมดจากเว็บไซต์ที่มีองค์ประกอบเฉพาะ (เช่น python) ที่กล่าวถึงในลิงก์
โปรแกรมด้านล่างจะพิมพ์ URL ทั้งหมดจากเว็บไซต์เฉพาะที่มี “python” อยู่ในลิงค์นั้น
from bs4 import BeautifulSoup from urllib.request import urlopen import re html = urlopen("https://www.python.org") content = html.read() soup = BeautifulSoup(content) for a in soup.findAll('a',href=True): if re.findall('python', a['href']): print("Python URL:", a['href'])
ผลลัพธ์
Python URL: https://docs.python.org Python URL: https://pypi.python.org/ Python URL: https://www.facebook.com/pythonlang?fref=ts Python URL: https://brochure.getpython.info/ Python URL: https://docs.python.org/3/license.html Python URL: https://wiki.python.org/moin/BeginnersGuide Python URL: https://devguide.python.org/ Python URL: https://docs.python.org/faq/ Python URL: https://wiki.python.org/moin/Languages Python URL: https://python.org/dev/peps/ Python URL: https://wiki.python.org/moin/PythonBooks Python URL: https://wiki.python.org/moin/ Python URL: https://www.python.org/psf/codeofconduct/ Python URL: https://planetpython.org/ Python URL: /events/python-events Python 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_Event Python URL: //docs.python.org/3/tutorial/controlflow.html#defining-functions Python URL: //docs.python.org/3/tutorial/introduction.html#lists Python URL: https://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator Python URL: //docs.python.org/3/tutorial/ Python URL: //docs.python.org/3/tutorial/controlflow.html Python URL: /downloads/release/python-373/ Python URL: https://docs.python.org Python URL: //jobs.python.org Python URL: https://blog.python.org Python URL: https://feedproxy.google.com/~r/PythonInsider/~3/Joo0vg55HKo/python-373-is-now-available.html Python URL: https://feedproxy.google.com/~r/PythonInsider/~3/N5tvkDIQ47g/python-3410-is-now-available.html Python URL: https://feedproxy.google.com/~r/PythonInsider/~3/n0mOibtx6_A/python-3.html Python 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-open-source-and-cross-platform-azure-cli-with-python/ Python URL: https://wiki.python.org/moin/TkInter Python URL: https://www.wxpython.org/ Python URL: https://ipython.org Python URL: #python-network Python URL: https://brochure.getpython.info/ Python URL: https://docs.python.org/3/license.html Python URL: https://wiki.python.org/moin/BeginnersGuide Python URL: https://devguide.python.org/ Python URL: https://docs.python.org/faq/ Python URL: https://wiki.python.org/moin/Languages Python URL: https://python.org/dev/peps/ Python URL: https://wiki.python.org/moin/PythonBooks Python URL: https://wiki.python.org/moin/ Python URL: https://www.python.org/psf/codeofconduct/ Python URL: https://planetpython.org/ Python URL: /events/python-events Python 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_Event Python URL: https://devguide.python.org/ Python URL: https://bugs.python.org/ Python URL: https://mail.python.org/mailman/listinfo/python-dev Python URL: #python-network Python URL: https://github.com/python/pythondotorg/issues Python URL: https://status.python.org/