Download Manga Bằng Python (Final Update 12/08/2017 - Package)

Chính xác :wink: rồi đó.

1 Like

cái thư viện beatyfull soup này cực bá đạo luôn nhưng mình thấy quan trọng là mò trong source code của trang html để tìm cái đoạn script đó đau mắt phết đấu có kinh nghiệm gì chia sẻ cái nhể

1 Like

https://kipalog.com/posts/Vui---Voc-Python-voi-Requests-and-Beautiful-Soup-package
đấy bài này có hướng dẫn cách làm chi tiết này bác này .Nhưng em làm món này rồi thấy làm trên win nó cứ lỗi hoài mà sang ubuntu thì được ngay vì dung bên win em

import urllib2

kiểu gì cũng lỗi mà kể cả powershell hay cmd lỗi hết

1 Like

Nên trừu tượng hoá, chia nhỏ module. code này nhìn muốn oẹ quá :smiley:

1 Like

Hi Nguyễn Thành Trung.
Ý mình nói là khả năng mở rộng. Bây giờ khi có nhu cầu tải trên một trang mới hoặc bỏ một trang đi thì bạn làm thể nào ? Cũng như cho nhiều người đóng góp thì như nào ?

1, Với cách làm module. Bạn thêm một trang mới thì chỉ cần tạo thêm 1 file module với có 2 hàm chính còn lại code các file khác giữ nguyên.
2. Khi bỏ một trang thì chỉ cần đổi tên file hoặc xóa đi.
3. Nhiều người đóng góp thì chỉ cần tải file module của mình lên là được không cần sửa code của bạn, giống như các addon chia sẻ cũng dễ.

4 Likes

Mình chưa có kinh nghiệm làm lắm. Mình cũng đang refactor lại đây :smile:. Cám ơn góp ý của bạn

1 Like

Mình đang làm bằng cách mỗi web sẽ có mỗi module nhận nhiệm vụ.

1 Like

thế này thì làm sao thi đại học điểm cao được đây bạn :grin:

2 Likes

Hi Nguyễn Thành Trung.

Kiếm thêm ai code phần view nữa là hoàn thành phần mêm đọc truyện offline rồi. @@!
Up luôn lên github để ai thích có thể dùng luôn. @
@!

3 Likes

Cậu học Python có lâu không để viết được cái này?

Và ngoài Python ra thì cậu còn kiến thức gì nữa thế?

1 Like

Cũng biết sơ sơ cú pháp :smile:. Mò một chút docs trên mạng. Biết thêm tí HTML

1 Like

Biết cài lib, cấu trúc rẽ nhánh, hàm, vòng lặp… HTML
Đọc thêm cuốn này là làm đc
https://www.amazon.com/Web-Scraping-Python-Collecting-Modern/dp/1491910291/ref=sr_1_1?ie=UTF8&qid=1501686319&sr=8-1&keywords=web+scraping+with+python

2 Likes

không cần đấu bác theo kinh nghiệm của mình thì chỉ cần biết python cơ bản và đọc doc về thư viện bs4-BeautifulSoup là làm được rồi bác à .Quan trọng nhất là bác có đủ kiên nhẫn để mò cái đoạn script đó ko

2 Likes

Quyển này có đầy đủ trick mánh để crawl chứ ko đơn thuần là chỉ sử dụng bs4-BeautifulSoup, nhất là mấy chương cuối

2 Likes

Có vài góp ý như sau:

  • Bạn nên có file .gitignore và ignore các file *.pyc và pycache
  • Nên làm thành package có thể install bằng pip. https://python-packaging.readthedocs.io/en/latest/
  • Phần CLI nên dùng argparse
  • Tên function không dùng camelCase, mà dùng underscore hoặc viết liền. Còn class thì viết hoa các chữ cái đầu tiên.
  • Dùng logging thay cho print
  • Các function cần có docstring
  • Nên có test

Dù sao code base đã có rồi, nên nếu cố gắng 1 chút nữa là có thể làm thành package. Chúc bạn có một lib có thể viral.

6 Likes

Đồng ý tất cả trừ vụ package.

Phần đó chỉ khi nào app hoàn thành, release cho khách hàng xong. Buổi họp team tổng kết cuối cùng mới quyết định phần nào có thể reuse cho dự án kế tiếp, sau đó mới refactor lại thành package.

2 Likes

Class name nên dùng CamelCase chứ nhỉ?

3 Likes

Cái này chắc tùy style của mỗi người: snake_case m chỉ dùng khi tên biến/ hàm là tiếng việt.

2 Likes

Hi Nguyễn Thành Trung.
Theo mình nên dùng import động kiểu này. Từ tên miền link tự xác định file module cần dùng sẽ không cần sửa lại main mỗi khi thêm mới module.
https://stackoverflow.com/questions/37808866/proper-way-to-dynamically-import-a-module-with-relative-imports

3 Likes

Mình có một số nhận xét và góp ý thế này:

  • Ý tưởng hay đó :grinning:
  • Không thấy setup.py đâu :confused:. Và thêm __pycache__/ vào .gitignore nhé
  • requests không phải thư viện chuẩn của Python nên bạn chú ý thêm nó vào tham số install_requires trong hàm setup (cả beautifulsoup4 nữa) để khi cài đặt nó tự động cài các dependencies này, đỡ phải tải về thủ công như trên
  • Nếu bạn đã dùng requests (được đánh giá tốt hơn nhiều so với thư viện chuẩn urllib hay urllib2 thì không cần dùng urllib.request nữa
  • Một số bạn có gợi ý biến ứng dụng này thành crawler, vậy thì bạn thử cân nhắc tìm hiểu về scrapy xem
  • Để tránh bị ban IP, bạn cũng nên tìm cách spoof user agent và rotate IP

P/s: hiện tại mình có vài cái semi-dedicated proxies mua trên blazingseollc.com nhưng chưa dùng nhiều lắm. Nếu có nhu cầu mượn hay góp tiền mua chung thì liên hệ mình nhé :wink:

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