上付き文字、分子および分母形式の分数を含む Web ページを取得しようとしています。取得したコンテンツをドキュメント ファイルに保存しています。そのために、python-docx モジュールを使用しています。例のために。式 112 x 5 4は 112 x 54 として保存され、分数 ¼ は 1 (改行)(タブ) 4 として保存されます。Python 3.5 および Windows 8.1 OS を使用しています。
コード-
# This script heavily relies on the HTML structure of webpages mentioned below
# indiabix.com/aptitude/simple-interest, indiabix.com/aptitude/numbers which are similar
import sys
import urllib.request
from docx import Document
from bs4 import BeautifulSoup
soup = ""
para = ""
root = "http://www.indiabix.com"
def getQuestions(link):
req = urllib.request.urlopen(link)
soup = BeautifulSoup(req.read(),'html5lib')
boxes = soup.find_all('div',{'class':'bix-div-container'})
for box in boxes:
headers = box.find("td",{"class":"bix-td-qtxt"})
para = doc.add_paragraph(headers.get_text())
options = box.find_all("td",{'class':'bix-td-option'})
para.text += "\n"
for option in options:
para.text = para.text + (option.get_text()+" ")
return soup
def getExtras(soup):
main = soup.find('p',{'class':'ib-pager'}).find_all('a')
for m in main[:-1]:
getQuestions(root+m['href'])
return
if __name__ == '__main__':
# Here, the string "http://indiabix.com/aptitude/numbers" is used as the input link
link = input("Enter link : ")
doc = Document()
soup = getQuestions(link)
getExtras(soup)
doc.save('questions.docx')