Mình đã lập mục lục các bài học một cách tự động bằng cách nào?

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)
9 Likes

Quá hay, đó là sức mạnh của lập trình.
@btm :heart:

Tại sao ko bắt đầu với Python, Đạt tìm thấy tài liệu tiếng Việt này.

Reddit - http://www.reddit.com/r/python

Tài liệu chính thức bằng tiếng anh - https://www.python.org/doc/

3 Likes

Có thể cho em xin video hướng dẫn Python không ạ

1 Like

Tiếc là giờ anh chưa làm video hướng dẫn Python, anh hết sạch thời gian rồi.

1 Like

thoạt nhìn thì thấy giống php, coi đi coi lại thì giống C#, coi lại nữa thì giống javascript.coi tí nữa thì thấy giống vba… theo em thì thấy nó cũng na ná nhau thôi anh ơi, hix hix, Quan trọng là OOP thôi…nhất nhất phải OOP…À quên, trước nhất phải kiếm tiền, chừng đó ông chủ muốn cái gì thì mình xử cái đó chỉ 3 tuần thôi…

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?