Bằng 1 script nhỏ viết bằng Python mình đã lập mục lục các bài học chỉ trong vòng 1 giây, mà không cần phải thao tác thủ công copy & paste từng link. Mình luôn cảm thấy rất phấn khích mỗi khi nhìn thấy công việc được thực hiện tự động một cách nhanh chóng và chính xác. Đó là lý do mình đến với lập trình, còn các bạn thì sao?
Update:
ver 0.3: update Markdown format.
ver 0.2: output to file (HTML format).
ver 0.1: release.
#!/usr/bin/env python
#title :GrabDayNhauHoc.py
#description :This will get a list of lessons sorted by title.
#author :Minh Bui aka btm(at)daynhauhoc.com
#date :20141016
#version :0.3
#usage :python GrabDayNhauHoc.py
#notes :
#python_version :2.7.8
#==============================================================================
import urllib
import re
import os
for i in range(0,5):
doc = urllib.urlopen('http://daynhauhoc.com/category/programming/l/latest?category_id=9&page=' + str(i)).read()
titleC = re.compile('<a href="/t/ngon-ng-c-.+?">(.+?)</a>').findall(doc)
urlC = re.compile('<a href="(/t/ngon-ng-c-.+?)">.+?</a>').findall(doc)
titleCPP = re.compile('<a href="/t/c-bai-.+?">(.+?)</a>').findall(doc)
urlCPP = re.compile('<a href="(/t/c-bai-.+?)">.+?</a>').findall(doc)
domain = 'http://daynhauhoc.com'
#for i in range(len(titleC)):
# print ('<a target="_blank" href="' + domain + urlC[i] + '">' + titleC[i] + '</a>').decode('utf-8') #HTML
# print ('[' + titleC[i] + '](' + domain + urlC[i] + ')').decode('utf-8') #Markdown
#for i in range(len(titleCPP)):
# print ('<a target="_blank" href="' + domain + urlCPP[i] + '">' + titleCPP[i] + '</a>').decode('utf-8') #HTML
# print ('[' + titleCPP[i] + '](' + domain + urlCPP[i] + ')').decode('utf-8') #Markdown
with open('tempC.txt', 'a') as temp:
for i in range(len(titleC)):
#temp.write('<a target="_blank" href="' + domain + urlC[i] + '">' + titleC[i] + '</a>' + '\n') #HTML
temp.write('[' + titleC[i] + '](' + domain + urlC[i] + ')' + '\n') #Markdown
with open('tempCPP.txt', 'a') as temp:
for i in range(len(titleCPP)):
#temp.write('<a target="_blank" href="' + domain + urlCPP[i] + '">' + titleCPP[i] + '</a>' + '\n') #HTML
temp.write('[' + titleCPP[i] + '](' + domain + urlCPP[i] + ')' + '\n') #Markdown
with open('tempC.txt', 'r') as temp:
dataC = sorted(temp)
with open('tempCPP.txt', 'r') as temp:
dataCPP = sorted(temp)
os.remove('tempC.txt')
os.remove('tempCPP.txt')
with open('output.txt', 'w') as output:
output.writelines('Bên dưới là liên kết đến các bài học đã được sắp xếp theo thứ tự cho các bạn tiện tham khảo:')
output.writelines('\n\n**C**\n\n')
output.writelines(dataC)
output.writelines('\n\n**CPP**\n\n')
output.writelines(dataCPP)