1. Trang chủ
  2. » Cao đẳng - Đại học

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

16 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 121,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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..

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

Thực tập sinh : Hoàng Văn Châu

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

Trang 2

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 yê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

Trang 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>

Trang 4

NHẬN XÉT CỦA KHOA

Trang 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

Trang 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

Trang 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.

Trang 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 yê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, quá 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

Ngoà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, quá 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 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

2.2 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

Trang 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ả :

- 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

- Ngoà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

2.3 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

Ngoà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 toà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 client-server 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:

Trang 10

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

Mức độ hoàn thành

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

1

- Tìm hiểu về công ty, cách tổ chức của 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

Anh Nguyễn Trọng Sáu

Trang 11

- Tìm hiểu ngôn ngữ lập trình PHP nâng cao

Anh Nguyễn Trọng Sáu

3

- Tìm hiểu về, MySQL, Apache

- Thực hành viết một

số module cơ bản

Anh Nguyễn Trọng Sáu

4

- 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

Anh Nguyễn Trọng Sáu

5

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

Anh Nguyễn Trọng Sáu

6

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

7

Giai đoạn Beta:

- Làm các Module cần thiết

- Báo cáo tiến độ với leader để test

Anh Nguyễn Trọng Sáu

8 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

Trang 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 quá 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: Hoàng Văn Châu

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

Trang 14

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ả : Đã hoàn thành toà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 :

https://www.php.net/

Trang 15

https://code.google.com/archive/p/phpquery/

Trang 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ể hoàn thành Plugin này Cảm ơn thầy, cô của khoa đã giúp em hoàn thành bài báo cáo này

Ngày đăng: 05/09/2021, 21:06

TỪ KHÓA LIÊN QUAN

w