Nội quy chuyên mục: - Khu vực này chỉ dành cho việc thảo luận phát triển các Module, block, theme và các tính năng mới cho hệ thống.
- Tên topic chính là tên Block, Module, Theme. Không được đặt tên Block, Module, Theme trùng với Block, Module, Theme đã có.
- Các thảo luận cho Module, block, theme nào phải được gửi ngay tại topic mà người đầu tiên gửi nó lên.
- Vui lòng không gửi câu hỏi và các yêu cầu trợ giúp tại đây. Topic vi phạm nội quy sẽ bị xóa ngay lập tức!
#142160 gửi bởi hunters49
Ngày 03 Tháng 08 2013 , 00:28
Đây là topic xoay quanh các vấn đề về module Feednews - Lấy tin tự động (http://nukeviet.vn/vi/store/modules/feednews/). Tất cả các câu hỏi xin đăng tại đây.

Mục tiêu của module này là lấy được thông tin từ các website khác, khi trang nguồn thay đổi cấu trúc trang, người quản trị có thể khai báo lại một cách nhanh chóng. Lấy được những thông tin cần thiết như tiêu đề, tóm tắt, miêu tả, ảnh đại diện ... đưa vào danh mục chỉ định sẵn với từng mẫu.

Phiên bản mới nhất: 3.3.02
Đã test trên nukeviet bản 3.3 và 3.4

Hiện đã có bản thương mại của module Feednews. Bạn nào có nhu cầu vui lòng xem tại:
http://minhtc.net/lay-tin-tu-dong-modul ... o-phi.html


Khuyến mại:

Từ ngày 01/11/2013 tới 01/02/2014 giá module Feednews sẽ chỉ còn bằng 50% giá gốc tức là 150.000 vnđ. Bạn nào có nhu cầu vui lòng liên hệ qua email hunters49@gmail.com.


Lưu ý: Feednews đã có phiên bản 3.4.06 với độ ổn định cao, tốc độ lấy tin được cải thiện.

Bản thương mại có những tính năng mà bạn có thể quan tâm như:

1. Tùy chọn kiểm duyệt tin trước khi đưa vào cơ sở dữ liệu
2. Gộp nhiều Url cùng cấu trúc trong một mẫu khai báo
3. Tùy chọn giới hạn số lượng tin lấy trong một lần của một mẫu
4. Tích hợp khai báo nhiều tiến trình tự động cho phép chọn mẫu trong từng tiến tình (giảm tải cho hệ thống khi lấy tin tự động)
5. Sao lưu và khôi phục mẫu
6. Tính năng hỗ trợ khai báo mẫu (tất cả các mẫu cần khai báo)
7. Cải thiện tốc độ lấy tin, tối ưu hiệu suất hoạt động của module và hệ thống
8. Tùy chọn lấy ảnh trong nội dung khi không lấy được ảnh đại diện tại trang danh sách
9. Resize ảnh đại diện về kích thước trong cấu hình của module
10. Xóa link trong nội dung tin bài vẫn giữ nguyên text
11. Giới hạn vùng bắt đầu và kết thúc lấy tin làm giảm thời gian phân tích trang (Tăng tốc độ lấy tin)
12. Tùy chọn lấy phần miêu tả ngắn tại trang danh sách
13. Tùy chọn lấy ảnh trong phần nội dung bài viết về host
14. Khắc phục những lỗi nhỏ khác

Hướng dẫn khai báo mẫu cho bản có phí:


Lưu ý:

Xóa cache khi cập nhật phiên bản mới

Sau khi các bạn cập nhật phiên bản mới của module, các bạn vào quản trị => Công cụ web => Dọn dẹp hệ thống rồi tích chọn "Làm sạch cache" và nhấn thực hiện nhé.

Thời gian load trang quá ngắn

Module này đòi hỏi phần cấu hình memory_limit và max_execution_time trong php.ini khá cao. Bạn nào đang lấy tin mà thấy trang web không load được nữa thì có thể là do max_execution_time để quá ngắn. Gặp trường hợp này các bạn có thể mở file .htaccess ngoài thư mục gốc và thêm đoạn sau vào cuối:

<IfModule mod_php5.c>
php_value memory_limit 300M
php_value max_execution_time 259200
php_value max_input_time 259200
</IfModule>

Phiên bản 3.3.01 có những cải tiến đáng kể

1. Cho phép lấy tin về module ảo của news
2. Nén và xử lý dữ liệu lấy về, nâng cao khả năng bảo mật với CSDL
3. Thêm tùy chọn lưu theo nhóm tin
4. Khắc phục tình trạng tràn bộ nhớ
5. Lấy random thời gian đăng bài từ 60 -> 1000 giây trước khi bắt đầu lấy tin
6. Tự động thêm keywords
7. Chọn nguồn tin
8. Cho phép khai báo mẫu trong phần cấu trúc theo kiểu lấy đối tượng con.
vd: - mẫu{nth} sẽ lấy nội dung đối tượng con có vị trí là nth ngay sau của mẫu
- mẫu{p-nth} sẽ lấy nội dung đối tượng con là thẻ <p>, có vị trí là nth ngay sau của mẫu
9. Xóa comments trong trang nguồn trước khi phân tích mẫu
10. Thông báo tổng số tin lấy được và các lỗi sau khi lấy tin.
11. Tự động bỏ qua các mẫu không phân tích được và tiếp tục quá trình lấy tin.


------------------------------------------------------- HƯỚNG DẪN KHAI BÁO MẪU -----------------------------------------------------------

Trong quá trình support tôi thấy nhiều bạn quan tâm tới việc tự khai báo mẫu, tôi sẽ hướng dẫn chi tiết cách thức phân tích nguồn và khai báo mẫu để các bạn tham khảo.

Để cụ thể tôi sẽ thao tác quy trình phân tích mẫu của trang http://ngoisao.net/tin-tuc/hau-truong/showbiz-viet

1. Thêm mẫu:

- Tên mẫu: Showbiz Việt - Báo ngoisao.net

- Host: http://ngoisao.net/

- Url: http://ngoisao.net/tin-tuc/hau-truong/showbiz-viet

3 mục này thì đơn giản rồi chắc không cần giải thích gì thêm :D.

- Mẫu bao ngoài một đối tượng:

Các bạn vào trang cần lấy dữ liệu http://ngoisao.net/tin-tuc/hau-truong/showbiz-viet

Hình ảnh

Sau khi xác định được vùng cần lấy dữ liệu, các bạn xác định mẫu bao ngoài một đối tượng. Tôi định nghĩa mẫu bao ngoài một đối tượng là mẫu chứa đường link tới trang chi tiết tin và ảnh đại diện của tin.
Để xác định mẫu bao ngoài một đối tượng các bạn sử dụng Firebug, trên FF hay Chrome , bấm F12 cho nó chạy, Firebug là 1 plugin của FF, Chrome thì có sẵn. Sau đó nhấn chuột phải vào đối tượng cần xem mẫu và chọn Kiểm tra phần tử (Inspect Element With Firebug). Hoặc các bạn có thể làm như sau: Nhấn F12
Với Chrome Trong tab Elements các bạn nhấn vào nút Select an element in the page to inspect it (hình kính lúp bên dưới vị trí thứ 3 từ trái sang)
Với FF các bạn nhấn nút Select an element in the page to inspect ở vị trí thứ 2 từ trái sang của Firebug.
sau đó di chuột vào vùng mẫu bao ngoài một đối tượng mà tôi đã khoanh mầu xanh ở hình trên. Các bạn sẽ thấy như hình dưới:

Hình ảnh

Các bạn để ý thấy mẫu bao ngoài một đối tượng sẽ có dạng ul.news li

Tại sao lại là ul.news li? Module feednews tôi dùng thư viện simple html dom để xác định cấu trúc HTML của trang nguồn. Cách xác định đối tượng trong cấu trúc HTML của thư viện simple html dom các bạn xem tại http://simplehtmldom.sourceforge.net/.

Trong bản 3.1.04 tôi đã thêm tính năng khai báo nhiều mẫu bao ngoài cùng lúc (cách nhau bởi dấu phẩy ","). Tương ứng với các mẫu bao ngoài này là các Mẫu liên kết một tinMẫu ảnh đại diện cũng cách nhau bởi dấu phẩy ",". Nếu các bạn không điền Mẫu liên kết một tinMẫu ảnh đại diện thì mặc định các mẫu này sẽ lấy giá trị mẫu đầu tiên.

Ví dụ: trong ví dụ cụ thể của trang http://ngoisao.net/tin-tuc/hau-truong/showbiz-viet các bạn có thể khai báo nhiều mẫu bao ngoài như sau để lấy được cả vùng tin lớn trên cùng:

Mẫu bao ngoài: ul.news li,.newso ul li,.tnht div.news
Mẫu liên kết một tin: a.ptw,a.ptw,a.ptw
Mẫu ảnh đại diện: img,img,img

Ở đây có 3 mẫu bao ngoài nên tương ứng có 3 mẫu liên kết một tin và 3 mẫu ảnh đại diện. Nhưng vì mẫu liên kết một tin và mẫu ảnh đại diện của 3 mẫu này giống nhau nên các bạn có thể chỉ cần nhập:

Mẫu liên kết một tin: a.ptw
Mẫu ảnh đại diện: img

- Mẫu liên kết một tin:

Là đường link tới trang chi tiết của tin cần lấy nằm trong mẫu bao ngoài một đối tượng đã xác định ở trên. Ở bước này các bạn chỉ cần xác định tới thẻ a chứa liên kết là được. Cách làm tương tự như trên ta sẽ thấy trong vùng mẫu bao ngoài một đối tượng có 2 liên kết tới trang chi tiết

Hình ảnh

vì vậy ta có 2 cách xác định Mẫu liên kết một tin như sau:
- a.ptw
- h3 a

Cả 2 cách trên đều được.

- Lấy ảnh đại diện về host: đây là tùy chọn, nếu chọn Không thì tin lấy về sẽ sử dụng trực tiếp ảnh đại diện của trang nguồn, còn nếu chọn là thì ảnh đại diện sẽ được lấy về host.

- Mẫu ảnh đại diện:

Là đối tượng <img /> nằm trong Mẫu bao ngoài một đối tượng. Cách xác định giống như mẫu liên kết một tin nhưng đối tượng cần xác định ở đây là <img />.

Vậy ở ví dụ này mẫu ảnh đại chỉ cần ghi là img.

Lưu ý: cách xác định mẫu liên kết một tin, mẫu ảnh đại diện đều tính từ bên trong mẫu bao ngoài một tin.

- Thay thế đường dẫn ảnh trong nội dung:

Ở nhiều trang, ảnh trong trang chi tiết có dạnh không đầy đủ (thiếu domain chẳng hạn). Khi này các bạn phải làm cho đường dẫn ảnh trong trang chi tiết có dạng đầy đủ thì mới hiển thị được. Trong mục này có 2 ô, ô đầu tiên là chuỗi ký tự có trong ảnh nguồn, ô thứ 2 sẽ là chuỗi ký tự thay thế cho chuỗi ký tự ở ô đầu tiên.

Trong ví dụ này thì các bạn sẽ điền như sau: /Files/ ==> http://ngoisao.net/Files/

- Nguồn tin: bạn điền tùy ý nhưng bạn chú ý tiêu đề là phần text sẽ hiển thị cuối bài viết, còn website nguồn tin sẽ là đường link tới nguồn.

Trong ví dụ này tôi điền là:
tiêu đề: Báo Ngôi Sao
website nguồn tin: http://ngoisao.net/


2. Cấu trúc:

Các bạn vào trang chi tiết một tin cần lấy.

Mỗi một mục sẽ gồm 3 phần là phần mẫu cần lấy, mẫu cần xóa và chuỗi ký tự cần xóa:

Mẫu cần lấy là mẫu của đối tượng sẽ lấy tương ứng.

Mẫu cần xóa là những đối tượng sẽ bị loại bỏ trong nội dung, mỗi một mẫu cần xóa cách nhau bởi dấu phẩy ",".
Trong bản 3.1.04 các bạn có thể sử dụng mẫu children{nth} để xóa đối tượng con có vị trí tương ứng là nth, nth bắt đầu từ 0.
Ví dụ để xóa thẻ <p> đầu tiên trong phần nội dung(bodyhtml) các bạn điền vào Mẫu đối tượng cần xóa của bodyhtml là children{0}

Chuỗi ký tự cần xóa là những chuỗi ký tự sẽ bị loại bỏ trong nội dung, mỗi một chuỗi ký tự cần xóa cách nhau bởi dấu phẩy ",".

- title: là phần tiêu đề tin

+ Mẫu cần lấy:
Các bạn tìm tới phần tiêu đề của tin và xác định mẫu của phần tiêu đề này.
Trong ví dụ này sẽ là: h1.title
+ Mẫu đối tượng cần xóa: trong ví dụ này để trống.

- hometext: là phần miêu tả ngắn

+ Mẫu cần lấy: trong ví dụ này sẽ là: h2.lead
+ Mẫu đối tượng cần xóa: trong ví dụ này để trống

- bodyhtml: là phần nội dung chính của tin

+ Mẫu cần lấy: trong ví dụ này là: .detailCT
+ Mẫu đối tượng cần xóa: ở đây có nhiều đối tượng phải loại bỏ ví lẫn trong mẫu cần lấy.
trong ví dụ này là: .topDetail,h1,h2,.RelatedLeadSubject,.detailNS,.relateNewsDetail,.reference_news

- homeimgalt: là mẫu cho phần miêu tả cho ảnh đại diện (chính là nội dung thuộc tính alt của thẻ img)

- author: là mẫu cho phần tác giả bài viết

- keywords: là mẫu cho phần Từ khóa dành cho máy chủ tìm kiếm

Tới đây là kết thúc quá trình khai báo mẫu :D. Việc có lấy được tin hay không và lấy có chính xác hay không tùy thuộc vào chất lượng mẫu các bạn khai báo. Với những trang web viết đúng chuẩn thì việc lấy dữ liệu sẽ dễ dàng hơn còn với những trang viết cấu trúc html không chuẩn, thừa thiếu thẻ, định dạng không thống nhất vv... thì việc khai báo là khá phức tạp và khó khăn. Nếu trong quá trình học khai báo mẫu bạn gặp khó khăn cứ chia sẻ, tôi sẽ giúp đỡ bạn.
Sửa lần cuối bởi dienthaitoan vào Ngày 21 Tháng 11 2013 , 10:38, với tổng số 22 lần sửa.
#142162 gửi bởi hunters49
Ngày 03 Tháng 08 2013 , 00:39
Trả lời bạn @cucgach trên phần bình luận của nukeviet store:
"Mình cũng cânĩn hướng dẫn chi tiết chút. Mình lấy nguồn của http://www.vinametal.com/?page=news
nhưng không được...."

Tôi đã test trên máy tôi và đã lấy được tin từ trang bạn muốn với mẫu sau:
(Trước hết bạn hãy vào http://nukeviet.vn/vi/store/modules/feednews/ down bản cập nhật mới nhất của module đã nhé)

1. Thêm mẫu:

- Tên mẫu: Tin tức - http://www.vinametal.com/

- Host: http://www.vinametal.com/

- Url: http://www.vinametal.com/?page=news

- Mẫu bao ngoài một đối tượng: #AjaxCenter table tbody tr td table tbody tr td table tbody tr td table

- Mẫu liên kết một tin: a.ch9

- Mẫu ảnh đại diện: a img

- Thay thế đường dẫn ảnh trong nội dung: data/ ==> http://www.vinametal.com/data/

2. Cấu trúc:

- title:
+ Mẫu cần lấy: #AjaxCenter table tbody tr td div[style="margin-top:5px;margin-bottom:5px; font-weight:bold; font-family:Arial, Helvetica, sans-serif;font-size:15px;color:#0066FF;"]

- bodyhtml:
+ Mẫu cần lấy: #AjaxCenter table tbody tr td[width="100%"]
+ Mẫu đối tượng cần xóa: #AjaxCenter table tbody tr td table tbody tr td.News-Title
#142168 gửi bởi ngoctuyen85
Ngày 03 Tháng 08 2013 , 02:00
Anh có thể cho em nội dung chi tiết từ nguồn
http://motovietnam.vn
Em chỉ muốn lấy nôi dung từ phần
http://motovietnam.vn/moto.html
được không ạ, em không phải dân Lập trình nên ko rành mấy cái này lắm. Mong anh giúp đỡ nhé. Cám ơn anh nhiều.
#142178 gửi bởi anhyeuviolet
Ngày 03 Tháng 08 2013 , 04:56
Công cụ khá hay. :) Tuy thế đòi hỏi người dùng có đủ kinh nghiệm và hiểu biết mới vận hành nổi >:)
:(( Mình không đủ =((

Ghi chú : Mình thề là mình bấm nút thêm mẫu nhưng nó không động đậy gì cả. NÓi thật, không đùa đâu! @-)

Cổng nhôm đúc Nhật Bản
http://www.asuzac-acm.com.vn/vi/acm/cong-nhom-duc/
#142184 gửi bởi hunters49
Ngày 03 Tháng 08 2013 , 05:38
ngoctuyen85 đã viết:Anh có thể cho em nội dung chi tiết từ nguồn
http://motovietnam.vn
Em chỉ muốn lấy nôi dung từ phần
http://motovietnam.vn/moto.html
được không ạ, em không phải dân Lập trình nên ko rành mấy cái này lắm. Mong anh giúp đỡ nhé. Cám ơn anh nhiều.

Bạn khai báo như sau nhé:

1. Thêm mẫu:

- Tên mẫu: tùy ý bạn

- Host: http://motovietnam.vn/

- Url: http://motovietnam.vn/moto.html

- Mẫu bao ngoài một đối tượng: .contentpaneopen

- Mẫu liên kết một tin: a.contentpagetitle

- Mẫu ảnh đại diện: img.mininews-thumb

- Thay thế đường dẫn ảnh trong nội dung: để trống

2. Cấu trúc:

- title:
+ Mẫu cần lấy: .article-content h2

- bodyhtml:
+ Mẫu cần lấy: .article-content
+ Mẫu đối tượng cần xóa: .article-content h2
#142185 gửi bởi hunters49
Ngày 03 Tháng 08 2013 , 05:53
thanhchunghti đã viết:Cái này khó dùng hơn cái bóc tách tin tức của đangđinhtứ

Cái này bạn nói chính xác luôn :D

Nhưng tôi làm như vậy là vì muốn mọi người có một công cụ có thể lấy được tin ở nhiều trang khác nhau, không bị giới hạn bởi người lập trình. Nếu bạn nào là dân lập trình có thể vào giúp đỡ mợi người khai báo mẫu :P

anhyeuviolet đã viết:Công cụ khá hay. :) Tuy thế đòi hỏi người dùng có đủ kinh nghiệm và hiểu biết mới vận hành nổi >:)
:(( Mình không đủ =((

Ghi chú : Mình thề là mình bấm nút thêm mẫu nhưng nó không động đậy gì cả. NÓi thật, không đùa đâu! @-)

Bạn có thể cho biết là bạn dùng bản nukeviet bao nhiêu không? Tôi mới test trên bản 3.4

Bạn không phải là dân lập trình và bạn cần giúp đỡ khai báo mẫu? Vậy bạn có thể đưa trang bạn cần lấy tin lên đây và mọi người sẽ giúp đỡ bạn.

Còn bạn nào thực sự quan tâm tới cách khai báo mẫu thì có thể tham khảo tại http://minhtc.net/lay-tin-tuc-tu-dong-tu-website-khac-bang-php.html. Trong phần QUẢN LÝ MẪU LẤY TIN tôi đã hướng dẫn chi tiết cách phân tích mẫu của trang http://ngoisao.net/tin-tuc/showbiz-viet/ các bạn xem và áp dụng vào trang các bạn muốn lấy tin.
#142186 gửi bởi rinvt
Ngày 03 Tháng 08 2013 , 07:24
Mình đã test thử và có ý kiến với bạn như sau :
Modul về ý tưởng là hết sức tuyệt vời. Giúp ích rất nhiều. Nhưng mình đã gặp vấn đề là test ở localhost chỉ lấy được tin ở ngoíao.net thôi còn các web còn lại là không lấy được . Khi mình dùng trên host thì nó lấy được tin ở ngôi sao chỉ là hình đại diện và title thôi khi lích vào thì hệ thống báo là đường dẫn này không tồn tại . Ko hiểu lý do vì sao . Rất mong bạn giúp đỡ vấn đề này . Bạn vui lòng cho mình xin yahoo . Mình sẽ send link web de ban xem thử nhé . Thanks bạn nhiều
#142187 gửi bởi dangdinhtu
Ngày 03 Tháng 08 2013 , 07:50
Tác giả vẫn chưa thể lường hết được sự khốn nạn của dữ liệu nguồn đâu :D

Diễn đàn Nukeviet mới do Mình và Nhím thủ lĩnh thành lập các bạn ghé qua học tập trao đổi nhé https://forum.nuke.vn/
#142188 gửi bởi hunters49
Ngày 03 Tháng 08 2013 , 09:00
rinvt đã viết:Mình đã test thử và có ý kiến với bạn như sau :
Modul về ý tưởng là hết sức tuyệt vời. Giúp ích rất nhiều. Nhưng mình đã gặp vấn đề là test ở localhost chỉ lấy được tin ở ngoíao.net thôi còn các web còn lại là không lấy được . Khi mình dùng trên host thì nó lấy được tin ở ngôi sao chỉ là hình đại diện và title thôi khi lích vào thì hệ thống báo là đường dẫn này không tồn tại . Ko hiểu lý do vì sao . Rất mong bạn giúp đỡ vấn đề này . Bạn vui lòng cho mình xin yahoo . Mình sẽ send link web de ban xem thử nhé . Thanks bạn nhiều

Cám ơn bạn đã góp ý. Vì mình cũng đã test kỹ trước khi đưa code lên nên quả thực là mình không lường hết được các vấn đề phát sinh. Nếu bạn có thể gửi link web mình tin là mình có thể giúp bạn. Yahoo của mình là hunters49@yahoo.com