hailoc12 / docbao Goto Github PK
View Code? Open in Web Editor NEWCông cụ quét và phân tích từ khoá các trang báo mạng Việt Nam
Công cụ quét và phân tích từ khoá các trang báo mạng Việt Nam
Thấy bạn đang dùng các biến môi trường làm settings.
source SETTINGS.env
export DOCBAO_EXPORT_TO_RABBITMQ=true
export DOCBAO_RABBITMQ_HOST=127.0.0.1
export DOCBAO_RABBITMQ_USERNAME='admin'
export DOCBAO_RABBITMQ_PASSWORD='password'
export DOCBAO_RABBITMQ_EXCHANGE='exchange_name'
export DOCBAO_RABBITMQ_DEFAULT_QUEUE='default_queue_name'
Điều này hơi kì khôi. Biến môi trường chỉ nên dùng một ít để overwrite settings thôi. Biến môi trường có hạn chế:
"1"
, "true"
) dẫn tới bạn phải đặt ra luật riêng để "ép kiểu" từ text sang giá trị thực, ví dụ từ "1" thành integer, từ "true", "1", "yes" thành boolean.USERNAME='admin'
, không thể viết cách cho thông thoáng, dễ nhìn USERNAME = admin
.Đề xuất giải pháp:
Ghi chú:
Hello anh, em là sinh viên, em thấy bài chia sẻ của anh rất hay và nhiều kiến thức, nên em muốn kéo về và chạy thử. Nhưng trong lúc chạy lại gặp phải vấn đề bị lỗi thư viện. Em đã chạy cài lại thư viện nhưng mà lỗi vẫn xuất hiện. Nên em viết Issue này mong là anh có thể giúp em giải đáp chút thắc mắc. Em xin cám ơn.
Em chạy terminal của VSC trong ảnh và bị lỗi
ModuleNotFoundError: No module named 'pyvirtualdisplay'
-Em đã chạy pip install pyvirtualdisplay và chạy lại lệnh bash install.sh
-Trước đó em đã chạy lệnh export DOCBAO_BASE_DIR=/home/hiep/Project/Predict/docbao
Các file được tạo ra bởi chương trình nên được gom vào thư mục riêng, ví dụ: client\data
:
hot_keyword.json
keyword_dict.json
uncategorized_keyword.txt
article_data.json
article.dat
blacklist.dat
log_data.json
Và cho vào .gitignore
cái thư mục này luôn, làm vậy cho mã nguồn nhìn gọn bớt :)
Hoặc tạo cái file config, để chỉ nơi chứa từng file, vì có thể triển khai cả client và server trên cùng 1 máy chủ, nên sẽ cập nhật trực tiếp server luôn, không cần phải dùng rclone.
Xin chào, bạn làm tốt lắm, mình có ý cải tiến như sau:
Sau khi docbao.py
kết thúc, có thể kiểm tra điều kiện của database hiện tại để xem có dữ liệu mới không rồi dùng subprocess
để chạy lệnh rclone
lên máy chủ luôn. Như vậy sẽ hạn chế việc chạy rclone
không cần thiết (trong run_docbao.sh
).
Khi bắt đầu chạy chương trình docbao.py
, tạo ra 1 file lock, ví dụ docbao.lock
ghi giá trị 1
, sau khi chạy xong, xử lý hết dữ liệu, đẩy dữ liệu lên máy chủ xong thì ghi giá trị 0
. Để lần sau chương trình chạy nếu thấy giá trị là 1
này thì không chạy nữa, hạn chế chạy chồng khi chương trình chạy bị kéo dài, và cũng giảm thời gian chờ giữa các lần chạy (thiết lập cronjob 1 phút chẳng hạn)
Nhiều bài viết mình thấy bị trùng nhau
mình thấy project rất hay và muốn làm 1 số resource yaml khác cho phục vụ nhu cầu cá nhân, đồng thời contribute luôn.
Nhưng khi đọc cái yaml hiện tại thì thấy khá là rối @@ nhìn hơi khó hiểu.
Không biết owner có thể share 1 chút về cách làm không ?, sample nói nhanh vài step là được rồi :)
Mình cũng là dev
Chào anh Lộc
em có một số thắc mắc mong được anh giải đáp
Anh cho em hỏi hiện cái crawler của anh có thể tự động rút trích các trang báo khác nhau không ạ ?
Cách anh tự động có phải là phân tích một cấu trúc web của từng trang báo sau đó crawler hay anh dùng 1 cách nào khác ?
Em cũng đang thực hiện 1 cái projects nhỏ để học về crawler nhưng bị bế tắc khúc rút trích tất cả các URLS của một trang web (do trang web thường sẽ có nhiều thứ như Page giới thiệu, Page liên lạc, Page sản phẩm, nhưng em chỉ muốn sử dụng Page sản phẩm để thực hiện việc rút trích ra dữ liệu thì anh cho em hỏi liệu có cách nào để em có thể làm được cái mà em đang nói tới không ạ ?)
Mong anh trả lời giúp em
Em cảm ơn anh vì đã đọc
Thái Học
Mỗi website tin tức đều có RSS cho từng danh mục
Ví dụ trang nld.com.vn
có https://nld.com.vn/thoi-su.rss
Link RSS chứa thông tin các item
mỗi item
trình bày như bên dưới
<item>
<title>
<![CDATA[
Điều tra vụ vay người dân hàng trăm tỉ đồng không có khả năng chi trả
]]>
</title>
<link>
<![CDATA[
https://nld.com.vn/thoi-su/dieu-tra-vu-vay-nguoi-dan-hang-tram-ti-dong-khong-co-kha-nang-chi-tra-20180907100003166.htm
]]>
</link>
<guid isPermaLink="false">
<![CDATA[
https://nld.com.vn/thoi-su/dieu-tra-vu-vay-nguoi-dan-hang-tram-ti-dong-khong-co-kha-nang-chi-tra-20180907100003166.htm
]]>
</guid>
<description>
<![CDATA[
<img src="https://nld.mediacdn.vn/zoom/130_200/2018/9/7/anh-15362890843522110867625.jpg" alt="Điều tra vụ vay người dân hàng trăm tỉ đồng không có khả năng chi trả" title="Điều tra vụ vay người dân hàng trăm tỉ đồng không có khả năng chi trả" width="130px" height="200px" />(NLĐO)- Cơ quan chức năng Quảng Trị đang điều tra, làm rõ tin báo một người phụ nữ vay khoảng 400 tỉ đồng của hàng chục người dân nhưng không có khả năng chi trả.
]]>
</description>
<pubDate>9/7/2018 9:59:00 AM</pubDate>
</item>
- Bước 1. Mỗi trang web tin tức, cralwer tất cả RSS cho danh mục cụ thể
- Bước 2. Mỗi link RSS sẽ được thực hiện crawler tuần tự để lấy thông tin cần
- Bước 3. Thực hiện song song tất cả website tin tức mỗi 10 phút
Tips:
Đang thực hiện
Góp ý của anh Nguyễn Bá Hòa:
Lỗi này do write file ở chế độ wb, do đó nếu gặp lỗi thì xóa đè file dữ liệu đã có.
Giải pháp tạm thời: ghi ra một file temp, nếu không gặp lỗi thì thay thế file chính thức
Giải pháp lâu dài: thay thế cơ chế pickle bằng sqlite, viết một class database riêng để xử lý vấn đề này
Ô tìm kiếm trên trang http://theodoibaochi.com/ hoạt động chậm do autocomplete được kích hoạt sau mỗi kí tự gõ, nên tạo ra một khoảng trễ nhất định (vd. 0.5s mới search)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.