VnExpress Toilet Paper - Pet Project
Python
59
beautifulsoup4
3
White

Rice viết ngày 18/01/2019

Requirement

Hôm bữa đọc được bài https://kipalog.com/posts/Hoc-va-cai-thien-kien-thuc-tu-cac-du-an-ca-nhan-pet-project thấy hay quá. Tính cũng định viết con app để lúc đi vệ sinh có cái mà đọc.
Mục tiêu thì cũng như bạn ấy đề cập: Web nhẹ, nhỏ, đẹp, xinh :smile:.

Frontend: None - Chỉ lấy html và render.
Backend: Python.
Server provider: Heroku
Source control: Github

Breakdown

Nguồn bài từ đầu: Rss của VnExpress - https://vnexpress.net/rss
Xử lí Rss bằng gì: Feedparser
Scraping detail bài viết: BeautifulSoup
App: Flask

Home

<!--Danh sách rss của VnExpress-->
<li><button name = "rss" value="/rss/thoi-su.rss" type="submit">Thời sự</button></li>
<li><button name = "rss" value="/rss/kinh-doanh.rss" type="submit">Kinh doanh</button></li>
<li><button name = "rss" value="/rss/giai-tri.rss" type="submit">Giải trí</button></li>
<li><button name = "rss" value="/rss/the-thao.rss" type="submit">Thể thao</button></li>
<li><button name = "rss" value="/rss/phap-luat.rss" type="submit">Pháp luật</button></li>
<li><button name = "rss" value="/rss/giao-duc.rss" type="submit">Giáo dục</button></li>
<li><button name = "rss" value="/rss/phap-luat.rss" type="submit">Pháp luật</button></li>
<li><button name = "rss" value="/rss/the-thao.rss" type="submit">Thể thao</button></li>
<li><button name = "rss" value="/rss/gia-dinh.rss" type="submit">Đời sống</button></li>
<li><button name = "rss" value="/rss/du-lich.rss" type="submit">Du lịch</button></li>
<li><button name = "rss" value="/rss/khoa-hoc.rss" type="submit">Khoa học</button></li>
<li><button name = "rss" value="/rss/so-hoa.rss" type="submit">Số hóa</button></li>
<li><button name = "rss" value="/rss/tam-su.rss" type="submit">Tâm sự</button></li>
<li><button name = "rss" value="/rss/cuoi.rss" type="submit">Cười</button></li>

Scrap entry from rss

python

rss = request.form['rss']
NewsFeed = feedparser.parse("https://vnexpress.net" + rss)
return render_template('result.html',NewsFeed = NewsFeed,year=year)

html

    <ul>
      {% for entry in NewsFeed.entries %}
          <li><button name = "link" value="{{ entry.link }}">{{ entry.title }}</button></li>
      {% endfor %}
    </ul>

Detail bài viết

python

def detail():
    link = request.form['link']
    soup = BeautifulSoup(requests.get(link).content,'html.parser')
    title = soup.find(class_="title_news_detail mb10").text
    paragraphs = soup.find("article")
    return """<h1>"""+title+"""</h1>""" + str(paragraphs) #Lẽ ra nên scrap sạch sẽ hơn nhưng mình lười quá =)). 

Thành quả

alt text
app: https://vnexpresstoilet.herokuapp.com
github: https://github.com/PhiHuyHoang/ToiletPaper

Chúc các bạn đi vệ sinh vui vẻ ...

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Rice

10 bài viết.
25 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
15 8
Sản phẩm sau khi làm http://coffeetube.herokuapp.com/ Yêu cầu Nói chung thì giờ download nhạc từ youtube thì nó có vô số cách rồi. Nhưng tự mình...
Rice viết 12 tháng trước
15 8
White
9 4
Trước giờ logic code của mình vẫn luôn dễ dãi như gái làng chơi nên đôi khi nó đã support thêm cho mình cái đức tính càng lúc càng không (thèm) kiê...
Rice viết 11 tháng trước
9 4
White
7 3
Description Mình là một thằng thích đọc sách. Nhưng lúc nào cũng bận (lười) nên cũng mấy tháng rồi chưa hoàn thành được quyển sách nào. Mình đa số...
Rice viết 8 tháng trước
7 3
Bài viết liên quan
White
7 3
Description Mình là một thằng thích đọc sách. Nhưng lúc nào cũng bận (lười) nên cũng mấy tháng rồi chưa hoàn thành được quyển sách nào. Mình đa số...
Rice viết 8 tháng trước
7 3
White
2 0
Mở đầu Như đã nói ở bài trước, mình đang nghiên cứu về Spark nên cần log lại một số thứ để dành sau này dùng đến :smile: Đối tượng hướng đến vẫn ...
Phạm Quốc Thắng viết hơn 3 năm trước
2 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
10 bài viết.
25 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!