Tải bản đầy đủ (.doc) (16 trang)

Báo cáo thực tập thu nhập dữ liệu WEBSITE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (120.08 KB, 16 trang )

1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

THU THẬP DỮ LIỆU WEBSITE

Công ty thực tập

: Feelsync System

Người phụ trách

: Nguyễn Trọng Sáu

Thực tập sinh

: Hồng Văn Châu

TP. Hồ Chí Minh, tháng 1 năm 2021

Thu thập dữ liệu website

Hoàng Văn Châu


2

LỜI MỞ ĐẦU



Crawl dữ liệu hay còn gọi là cào dữ liệu là một thuật ngữ khơng có gì là xa lạ trong
ngành marketing, Dịch Vụ Seo. Vì crawl là kỹ thuật mà các robots của các cơng cụ tìm kiếm
phổ biến hiện nay sử dụng như Google, Yahoo, Bing, Yandex, Baidu...
Crawler có cơng việc chính là thu thập dữ liệu từ một trang web bất kì, hoặc chỉ định
trước rồi phân tích cú pháp mã nguồn HTML để đọc dữ liệu và bóc tách thơng tin dữ liệu theo
u cầu mà người dùng đặt ra hoặc các dữ liệu mà Search Engine yêu cầu.
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như
muốn được tham gia làm việc trong một môi trường chuyên nghiệp, em có dự định là sẽ thực
tập trong hè. Vì vậy, em quyết định chọn FEELSYNC SYSTEM - một môi trường lý tưởng,
hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này.

Thu thập dữ liệu website

Hoàng Văn Châu


3

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty FEELSYNC SYSTEM đã tạo điều kiện cho em có
cơ hội được thực tập tại công ty.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của nhóm trainer, nhóm
thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được một plugin
crawler. Chân thành cảm ơn các anh chị trong nhóm trainer đã bỏ ra nhiều thời gian,công sức để
hướng dẫn chúng em hoàn thành đợt thực tập này.
Đặc biệt cảm ơn anh Nguyễn Trọng Sáu đã training PHP, Linux, MySQL, Apache, hướng
dẫn, giúp đỡ cho chúng em tận tình cả những khó khăn trong cơng việc, đến những khó khăn
việc làm quen với môi trường mới.

Cũng xin cảm ơn thầy cơ trong khoa Cơng nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều
kiện em làm bài báo cáo này.
Hoàng Văn Châu
<TpHCM, ngày 11 tháng 1 năm 2021>

Thu thập dữ liệu website

Hoàng Văn Châu


4

NHẬN XÉT CỦA KHOA

.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................

.......................................................................................................................................................
.......................................................................................................................................................

Thu thập dữ liệu website

Hoàng Văn Châu


5

MỤC LỤC

MỤC LỤC.......................................................................................................................... 1
Chương 1: Giới thiệu công ty thực tập..........................................................................3
1.
Giới thiệu về công ty Feelsync................................................................................2
2.
Sản phẩm của công ty..............................................................................................2
Chương 2: Nội dung thực tập.........................................................................................4
1.
Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty...........................................4
2.
Nghiên cứu kỹ thuật................................................................................................4
3.
Thực hiện project....................................................................................................8
4.
Lịch làm việc...........................................................................................................8
Chương 3: Chi tiết về project.......................................................................................10
1.
Giới thiệu về Plugin...............................................................................................10

2.
Thực hiện..............................................................................................................12
3.
Kế hoạch...............................................................................................................13
TÀI LIỆU THAM KHẢO..............................................................................................15
TỔNG KẾT....................................................................................................................16

Thu thập dữ liệu website

Hoàng Văn Châu


6

Chương 1: Giới thiêu công ty thực tập

1. Giới thiệu công ty First:
FEELSYNC SYSTEM (Gọi tắt là FEELSYNC) là công ty tư vấn và phát triển phần
mềm tại Việt Nam.
FEELSYNC đã có hơn 5 năm kinh nghiệm trong lĩnh vực phần mềm với việc xây
dựng và thực hiện rất nhiều phần mềm cho các tập đoàn, đối tác lớn trong và ngoài
nước.
Sau một thời gian phát triển, với mong muốn đem đến sản phẩm nhanh chóng và
chất lượng nhất đến tay khách hàng, FEELSYNC đã đưa vào nghiên cứu và ứng dụng
các công nghệ mới nhất hiện nay nhằm phục vụ mục đích chung của cơng ty và đối tác.
FEELSYNC tự tin mang đến các giải pháp phần mềm hiện đại, hiệu quả về mặt
thực tế, lẫn chi phí thực hiện. Bởi vì FEELSYNC sử dụng nguồn nhân lực bản địa phát
triển các sản phẩm song hành cùng quốc tế trong lĩnh vực phần mềm, tạo nên ưu thế cạnh
tranh, tính đột phát và thấu hiểu người tiêu dùng.
Đội ngũ nhân sự FEELSYNC với hơn 20 cộng sự, thuộc các phịng: Sáng Tạo,

Design, Technology và Planner Strategy - đã có kinh nghiệm làm việc tại nhiều công ty
đa quốc gia tại Singapore, Israel, Đức, Nhật… cùng sự tư vấn của các giáo sư và cộng tác
của các bạn sinh viên thuộc TOP tại các trường đại học danh giá.
FEELSYNC tự hào vì đã xây dựng thành cơng một mơi trường văn hóa đặc trưng,
tinh thần làm việc hợp nhất và quan trọng hơn hết là cùng khách hàng tạo nên cộng đồng
Thu thập dữ liệu website

Hoàng Văn Châu


7

phát triển phẩn mềm hiện đại, hiệu quả, dẫn đầu xu hướng.
Trong 5 năm hoạt động, công ty đã ra mắt các sản phẩm sử dụng những công nghệ
hiện đại nhất để phục vụ cho các mục đích thực tiễn của khách hàng như: phát triển phần
mềm đa nền tảng tương tác người dùng, phát triển phần mềm dựa trên RESTFUL API và
GRAPHQL cho nhiều bên cùng sử dụng, phần mềm quản lý doanh nghiệp, quản lý tài
sản…
Tất cả đã và đang nỗ lực từng ngày, để mang đến những giải pháp hiện đại nhất,
tốt nhất đến khách hàng. Và xây dựng một cộng đồng nhà phát triển phần mềm trẻ, năng
động, đủ sức cạnh tranh với thị trường quốc tế.
2. Sản phẩm của công ty
FEELSYNC không những cung cấp các giải pháp cộng nghệ phục vụ khách
hàng, mà còn là đơn vị thực hiện rất nhiều sự kiện, activation và đưa ra chiến
lược truyền thông cho rất nhiều thương hiệu trong và ngoài nước.
- Crawler.
- Web Design
- Mobile Design.

Thu thập dữ liệu website


Hoàng Văn Châu


8

Chương 2: Nội dung thực tập
Đợt thực tập em chủ yếu học phát triển một phần mềm, cụ thể ở đây là phần mềm tự
động thu thập dữ liệu website theo u cầu.

1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Thời gian : 4 tuần
Nội dung : Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về cơng ty, q trình thành lập và phát triển
(như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của
cơng ty .
Ngồi ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty
như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công
việc…
Kết quả : Hiểu thêm về công ty FEELSYNC, q trình thành lập và phát triển. Có thêm
các kỹ năng về việc sử dụng email trong công việc, cách sử dụng các phần cứng kết nối
với Server, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn.

2. Nghiên cứu kỹ thuật
2.1.

2.2.

Các công cụ làm việc
Thời gian : 2 tuần

Nội dung : Tìm hiểu về các cơng cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các cơng
cụ sẽ giúp ích cho trong cơng việc sau này. Một số phần mềm và trang web trong số
đó như Trello, Git, Bitbucket - sử dụng trong làm việc nhóm. PHP Debug – Debuger
cho phát triển PHP.
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Lập trình sử dụng các cơng cụ miễn phí, giúp dễ dàng kết hợp các cơng cụ
với nhau, so với việc dùng các IDE.
Tìm hiểu ngơn ngữ PHP nâng cao
Thời gian : 2 tuần
Nội dung : Được training về các kỹ thuật PHP nâng cao, những kiến thức quan trọng
cho việc tối ưu trên Server.
- Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tính
như tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình .
- Quản lý bộ nhớ
Thực tập sinh sẽ được hướng dẫn về cách cấp phát, quản lý bộ nhớ sao cho tối ưu,
tránh rò rỉ bộ nhớ trên server.

Thu thập dữ liệu website

Hoàng Văn Châu


9

Thực hiện :
- Tham gia đầy đủ các buổi training của công ty.
- Làm các bài thực hành, kiểm tra về kiến thức đã học.
Kết quả :

-

2.3.

Nâng cao kỹ năng lập trình với ngơn ngữ PHP.
Có được những kiến thức quan trọng cho việc lập trình website sau này.
Ngồi ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng
chuẩn, dễ đọc, dễ hiểu.

Lập trình PHP
Nội dung: Các kiến thức cơ bản về PHP để có thể làm ra một module đơn giản.
- Khái niệm cơ bản về PHP.
Nắm được các khái niệm cơ bản về mơi trường của PHP trên Linux.
Ngồi ra, trainer cịn cung cấp cho thực tập sinh những khái niệm trong lập trình
như sử dụng design pattern, cache, import các packages,, … để tùy chỉnh cho
module, là những khái niệm rất cơ bản và quan trọng trong lập trình một Plugin.
- Mơ hình kiến trúc MVC:
MVC (MVC Design Pattern) là viết tắt của Model - View - Controller. Đó là
một mẫu kiến trúc, mơ hình lập trình phổ biến được sử dụng để tạo cấu trúc cho
nhiều trang web, ứng dụng tiên tiến.
-

Apache:
Apache là phần mềm web server miễn phí mã nguồn mở. Nó đang chiếm đến
khoảng 46% thị phần websites trên tồn thế giới. Tên chính thức của Apache
là Apache HTTP Server, được điều hành và phát triển bởi Apache Software
Foundation.
Nó giúp chủ website đưa nội dung lên web – vì vậy có tên gọi là “web server”.
Apache là một trong số những web server lâu đời và đáng tin cậy nhất, phiên bản
đầu tiên đã được ra mắt từ hơn 20 năm trước, tận những năm 1995.


-

MySQL:
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database
Management System, viết tắt là RDBMS) hoạt động theo mơ hình clientserver. RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữ liệu
(Database) theo hình thức quản lý các mối liên hệ giữa chúng.
Các ứng dụng web lớn nhất như Facebook, Twitter, YouTube, Google, và Yahoo! đều
dùng MySQL cho mục đích lưu trữ dữ liệu.

-

CentOs:

Thu thập dữ liệu website

Hồng Văn Châu


10

CentOS là một hệ điều hành miễn phí được xây dựng và phát triển dựa trên hệ điều
hành mã nguồn mở Linux. CentOS là chữ viết tắt của “Community Enterprise Operating
System”. CentOS ra mắt công chúng vào tháng 5 năm 2004 và được phát triển dựa trên bản
phân phối của Red Hat Enterprise Linux (RHEL).

Thực hiện :
-

-


Tham gia đầy đủ các buổi trainning.
Làm các bài tập thực hành như tạo các DatabaseConnection để kết nối MySQL,
Controller và Model để xử lý dữ liệu và lưu trữ vào DB trên local ,cài đặt các
package liên quan lên hệ điều hành CentOs ( git, PHP, Apache, MySql...) …
Tìm hiểu khái niệm về CronJob và Shell Script trên Linux.
Tìm hiểu khái niệm về PHP CURL.
Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.

Kết quả :
-

Hiểu được những khái niệm cơ bản trong LAMP.
Đã hoàn thành được một Module đơn giản là kết nối vào DB và lưu trữ một thông
tin vào DB vừa được kết nối.

3. Thực hiện project
Sau một tháng được training và thực hành, thực tập sinh đã nắm được những kiến thực
cơ bản về Linux, Apache, MySQL, PHP. Trong tháng thứ hai, trainer đã hướng dẫn thực
tập sinh áp dụng những kiến thức đã học để thực hiện một Plugin hoàn chỉnh về thu thập
dữ liệu.
Chi tiết đồ án sẽ được nói ở phần sau.
4. Lịch làm việc

Tuần

Cơng việc
-

1


-

Người hướng dẫn

Mức
độ
hồn
thành

Nhận xét của người
hướng dẫn

Tìm hiểu về cơng ty, Anh Nguyễn Trọng
cách tổ chức của Sáu
công ty.
Làm quen với các
công cụ làm việc
trong công ty.
Học cách trao đổi,
làm việc qua email.

Thu thập dữ liệu website

Hoàng Văn Châu


11

-


Tìm hiểu ngơn ngữ Anh Nguyễn Trọng
lập trình PHP nâng Sáu
cao

2
3

-

Tìm
hiểu
về, Anh Nguyễn Trọng
MySQL, Apache
Sáu
Thực hành viết một
số module cơ bản

-

4

5

6

7
8

Tìm hiểu về Linux

Thực hành tạo một
CronTask,
ShellScript
- Kết nối tới Server
từ local.
Giai đoạn Alpha:
- Lên kế hoạch
- Thiết kế kiến trúc
phù hợp
- Viết Plugin
- Tạo các lớp cần
thiết, import các
packages cần thiết
cho plugin.
Giai đoạn Alpha(tiếp):
- Viết các chức năng
nâng cao hơn.
- Tương tác với các
Server và MySQL.

Anh Nguyễn Trọng
Sáu

Giai đoạn Beta:
- Làm các Module
cần thiết.
- Báo cáo tiến độ với
leader để test.
Giai đoạn Beta và giai
đoạn kết thúc, báo cáo :

- Kết nối với Server.
- Fix bug, fix logic
theo yêu cầu khách
hàng.
- Deploy Production.
- Báo cáo cuối đợt

Anh Nguyễn Trọng
Sáu

Thu thập dữ liệu website

Anh Nguyễn Trọng
Sáu

Anh Nguyễn Trọng
Sáu

Anh Nguyễn Trọng
Sáu

Hoàng Văn Châu


12

thực tập.

Thu thập dữ liệu website


Hoàng Văn Châu


13

Chương 3: Chi tiết về project

1. Giới thiệu về Plugin
THU THẬP DỮ LIỆU WEBSITE THEO YÊU CẦU.
Dữ liêu được thu thập từ các thông tin được public trên website và xử lý theo yêu
cầu đưa ra từ phía khách hàng. Quá trình thu thập được diễn ra tự động và theo lịch cố
định.

1.1.

Quy tắc chung
 Thiết kế DB và viết code theo quy tắc chung mà công ty đã đặt ra.
 Lên đúng lịch chạy cho hệ thống.
 Gửi Notify Success về cho cả phía khách hàng và Team Dev.
 Chỉ gửi Nofity Error về cho Team Dev, khách hàng thì khơng chỉ thơng
báo phía khách có lỗi xảy ra, không hiển thị chi tiết lỗi.

1.2.

Một số vấn đề xảy ra trong q trình thực hiện

Bị phía Website Victim block IP: do thực hiện request quá nhiều và liên tục
phía Website Victim sẽ block IP Server đang thực hiện Crawler. Để khắc
phục chúng ra cần thực hiện Request chậm lại trong Module get HTML đã
viết hoặc sử dụng Proxy ( tốn kinh phí).

- Bị phía Website Victim phát hiện giả mạo người dùng: do thực hiện request
bằng PHP CURL nên bị Website Victim phát hiện không phải do người
dùng Browser thực hiện và sẽ bị block. Để khắc phục chúng ra cần thêm
Cookies cho request từ CURL.
- Website sử dụng Client Render: dữ liệu được website genrate bằng Js, trong
khi đó chúng ta chỉ có thể được được HTML.Để khắc phục vấn đề này cần
tìm được API đã thực hiện request đã trả respone về cho Js và thực hiện lấy
dữ liệu từ API đó .
-

2. Thực hiện
-

Thực tập sinh: Hồng Văn Châu

Và sự giúp đỡ tận tình của team trainer.

Thu thập dữ liệu website

Hoàng Văn Châu


14

3. Kế hoạch
Giai đoạn Alpha:
-

-


Hoàn thành chức năng của từng module:
o Hoàn thành Module kết nối CSDL sử dụng Singleton DesignPattern.
o Tương tác CSDL: thêm , xóa, sửa … một record
Làm Module get HTML từ website bằng PHP CURL.
Xây dựng Notify Module để thông báo trạng thái bằng ChatWork API.

Kết quả :
-

Các tính năng trên đã được thực hiện tốt.

Giai đoạn Beta:
-

Sử dụng phpQuery-onefile để convert file html get được từ Module getHTML sang PHP
Object,…
- Viết các Controller xử lý logic theo yêu cầu khách hàng.
- Báo cáo tiến độ hằng tuần cho lead để chỉnh sửa logic và review code,…
- Kết nối với Server và Deploy lên môi trường test.
Kết quả : Đã hồn thành tồn bộ những tính năng trên, tuy nhiên chưa tối ưu.
Giai đoạn hoàn thành:
- Tối ưu hóa cách Request lên website victim.
- Được Lead và trainer xác nhận hoàn thành dự án.
- Nộp source code lên bitbucket.

TÀI LIỆU THAM KHẢO

PHP :
/>
Thu thập dữ liệu website


Hoàng Văn Châu


15

phpQuery-onefile:
/>
Thu thập dữ liệu website

Hoàng Văn Châu


16

TỔNG KẾT
Như vậy, chỉ trong vòng một tháng ngắn ngủi, em đã kịp hoàn thành một Plugin tự động
thu thập dữ liệu website theo yêu cầu. Plugin đã có khá đầy đủ các tính năng đã đề ra ban đầu.
Plugin phát triển theo mơ hình kiến trúc MVC có tính kế thừa nên sau này khi có thời gian sẽ có
thể phát triển lên mức cao hơn.
Chân thành cảm ơn sự giúp đỡ của các anh chị nhóm trainer của Feelsync để em có thể
hồn thành Plugin này. Cảm ơn thầy, cơ của khoa đã giúp em hồn thành bài báo cáo này.

Thu thập dữ liệu website

Hoàng Văn Châu




×