பியூட்டிபுல் சூப்

**பியூட்டிபுல் சூப்** (Beautiful soup) என்ற மென்பொருள், நாம் விரும்பும் அழகிய வடிவில், மீயுரைக் குறியிடு மொழி, எக்ஸ்எம்எல் வடிவக் கோப்புகளை, வடித்து எடுக்கப்பயன்படுகிறது. எனவே, இதனை, அழகுவடிச் சாறு எனலாம். இம்மென்பொருள் எம்.ஐ.டீ. உரிமத்துடன் (MIT) உள்ளது. எம்.ஐ.டீ. என்பது மாசாச்சூசெட்சு தொழில்நுட்பக் கழகம் என்பதைக் குறிக்கிறது.  பைத்தானின்  நூலகக்கூறகங்களில்(Library modules) ஒன்றான, 'பியூட்டிபுல் சூப்' (Beautiful Soup - அழகுவடிச் சாறு!),   இணையப்பக்கக் கோப்புகளில் (HTML, XML) இருந்து, தரவுகளைத் தேவைக்கேற்றவாறு பிரித்தெடுக்கப் பயன்படுகிறது. பைத்தானின் இரு பெரும் பதிப்புகளுக்கும்(பைத்தான்2.0~, 3.0~) இது செயற்படும் வகையில் அமைந்துள்ளது.

## செயற்படும் முறை
உங்களின் சொற்பிரிப்பியுடன் (parser), இக்கூறகநிரல் இணைந்து, இணையப்பக்கத் தரவுகளினுள், தேவைக்கேற்றபடி உட்செல்லவோ(navigating), தேடவோ, மாற்றவோ இயலும். இந்த அழகுவடிச் சாறின் திறனால், நிரலர்களின் நாட்கணக்கான அல்லது மணிகணக்கான, நிரல் எழுதும் நேரம் வெகுவாகக் குறைகிறது.

கீழேகூறப்படுகின்ற விளக்கவுரைகள், அழகுவடிச்சாறின் (Beautiful Soup4) நான்காம் பதிப்புக்குரியதாகும். அதிலும் முக்கியமான உட்கூறுகள் மட்டுமே விளக்கப்படுகின்றன. பொதுவாக இந்த உட்கூறுகளை, செயற்கூறுகள் (functions) என்கிறோம். ஒவ்வொரு செயற்கூறும், வெவ்வேறு விதமாக செயற்படும் இயல்புடையவை ஆகும். அவ்வேறுபாடுகளை அறிந்தால், நமது தரவுப் பிரித்தெடுக்கும் நோக்கம் எளிதாகும். இந்நோக்கத்தில் ஏதேனும் இடர்வரின், அதற்குரிய தீர்வுகளும் விளக்கப்படுகின்றன. 
பைத்தானின் இருவகைப் பதிப்புகளிலும் (பைத்தான் 2.7, பைத்தான் 3.2), இச்செயற்கூறுகள், எந்த வேறுபாடும் இல்லாமல், ஒரே விதமாகவே செயற்படும் சிறப்பியல்பைப் பெற்றிருக்கின்றன.

## நிரலாக்க அமைவு
இந்த எடுத்துக்காட்டு நிரலாக்கம், ஒரு தமிழ்விக்கியின் பகுப்பில் உள்ள கட்டுரைத்தலைப்புகளை, இணையத்தரவு வடித்தல் (web scrape) எடுத்துதவப்பயன்படுகிறது.


```python
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import requests
import csv
#getting all the contents of a url
url = 'https://ta.wikipedia.org/wiki/பகுப்பு:கட்டற்ற மென்பொருட்கள்'
#url = 'https://en.wikipedia.org/wiki/Category:Free software‎'
content = requests.get(url).content
soup = BeautifulSoup(content,'lxml')
#to corrects the mistakes of html.
#print (soup.prettify)

#printing the  name of the category
heading = soup.title
print()
print('செயல்-1'+' '+heading.text+' '+'(இதன் துணைப்பகுப்புகளும், பக்கங்களும் நிரலாக்கப்படுகின்றன.)')
print()

#showing the category-pages only
catPageSummaryTag = soup.find(id='mw-pages')
if catPageSummaryTag:
	catPageSummary = catPageSummaryTag.find('p')
	print()
	print('செயல்-2'+' '+catPageSummary.text)
	
# getting the cat-pages
	tag = soup.find(id='mw-pages')
	links = tag.findAll('a')
	# giving serial numbers to the output print and limiting the print
	print (''' (இப்பகுப்புப்பக்கங்களில், சில மட்டுமே கீழுள்ளன. ஆனால், முழுமையாக '002-பகுப்புப்பக்கங்கள்.csv'கோப்பில் எழுதப்பட்டுள்ளன.)''')
	counter = 1
	for link in links[:3]:
		print ('''        '''+str(counter) + "  " + link.text)
		counter = counter + 1
else:
	print ('''        மேற்கூறிய பகுப்பில், எப்பக்கமும் இல்லை. எனவே, '002-பகுப்புப்பக்கங்கள்.csv'கோப்பில் எழுதப்படவில்லை)''')

#getting the category pages list
catpages = soup.find(id='mw-pages')
if catpages:
    whatlinksherelist = catpages.find_all('li')
    things_to_write = []
    for titles in whatlinksherelist:
        things_to_write.append(titles.find('a').get('title'))
#writing the category pages as a output file
    with open('002-பகுப்புப்பக்கங்கள்.csv', 'w') as csvfile:
        writer = csv.writer(csvfile,delimiter="\n")
        writer.writerow(things_to_write)
else:
    print ('எப்பக்கமும் இணைக்கப்படாததால், அடுத்தச் செயலுக்குரிய, CSV கோப்பு உருவாக்கப்படவில்லை.')
```


## மொழிபெயர்ப்பு வழிகாட்டல்கள்
இதன் முந்தையப் பதிப்பான 'அழகுவடிச் சாறு 3', இனி இற்றையாகாது(updation). எனவே, இனி bs4 பதிப்பைப் பயன்படுத்தவும். bs3 எதிர் bs4 வேறுபாடுகளை, இப்பக்கத்தில் அறிந்து கொள்ளலாம்.

பின்வரும் மொழிகளில், இந்த ஆவணத்தின் மொழிபெயர்ப்புகளைக் காணலாம்.
*ஆங்கில மொழியாக்கம்
*சீன மொழியாக்கம்
*கொரிய மொழியாக்கம் 
*யப்பானிய மொழியாக்கம்

## உதவி பெறல்
இதன் பயன்பாட்டில் ஏதேனும் ஐயங்கள் தோன்றினாலோ, இடர்கள் இருந்தாலோ, இந்த கூகுள் குழுமத்தில் தெரிவித்து உதவிகளைப் பெறலாம். உங்களது இடர் சொற்பிரிப்பியுடன் இருந்தால், இடர் ஏற்படும் செயற்கூற்றின், கண்டறிதலின் விளைவைத் தவறாமல் குறிப்பிடவும்.

## இப்பக்கத்தையும் காணவும்
*எச்.டீ.எம்.எல். பிரிப்பான்களின் ஒப்பீடு (Comparison of HTML parsers)

## மேற்கோள்கள்

## வெளியிணைப்புகள்
*தமிழ் விக்கிமீடியத்திட்டங்களுள் ஒன்றான விக்கிநூல்களில், நிகழ்பட பாடங்களுடனும், நிழற்படங்களுடனும் வழிகாட்டல் பக்கம் உருவாக்கப்பட்டு வருகிறது

பகுப்பு:கட்டற்ற மென்பொருட்கள்
பகுப்பு:பைத்தான் நூற்கட்டகங்கள்
பகுப்பு:தமிழ்க் கணிமை நிரல் எடுத்துக்காட்டுக்கள் உள்ள கட்டுரைகள்