You are on page 1of 63

HTTP

REQUESTS
NHÓM 5
NHÓM 5
Giảng viên hướng dẫn:

Sinh viên thực hiện: Đỗ Anh Tài

Nguyễn Kim Tuấn

Nguyễn Văn Trường

Nguyễn Khánh vinh


Phân chia công việc
Đỗ Anh Tài Tìm hiểu nội dung, làm slide,

Nguyễn Kim Tuấn Tìm hiểu nội dung, làm demo, word

Nguyễn Văn Trường Tìm hiểu nội dung, làm word,

Nguyễn Khánh vinh Tìm hiểu nội dung, làm slide


HTTP
REQUESTS
01 02 03
TỔNG
QUAN WEB DEMO
VỀ SCRAPIN THỰC
HTTP G VỚI NGHIỆ
GIAO PYTHON M
THỨC
HTTP
REQUESTS
01 02 03
TỔNG
QUAN WEB DEMO
VỀ SCRAPIN THỰC
HTTP G VỚI NGHIỆ
GIAO PYTHON M
THỨC
TỔNG QUAN VỀ HTTP GIAO THỨC

01 02 03 04

Giới thiệu về HTTP Phương thức Mã trạng thái


HTTP giao Requests và HTTP requests phản hồi
thức Response
Message
01
Giới thiệu về
HTTP giao thức
Giới thiệu về HTTP giao thức

01 02 03 04 05

Giao thức Browser Uniform HTTP HTTP qua


HTTP Resource Protocol TCP/IP
Locator
Giao thức HTTP
• HTTP là một giao thức client-server với Request-Response không đối
xứng. Máy khách HTTP gửi yêu cầu đến máy chủ HTTP, máy chủ sẽ trả
về một thông báo phản hồi.

• HTTP là một giao thức chung, không trạng thái, cho phép yêu cầu về kiểu
dữ liệu và biểu diễn, để cho phép các hệ thống được xây dựng độc lập với
dữ liệu được truyền.
BROWSER
Bất cứ khi nào bạn cấp một URL từ trình duyệt của mình để lấy tài
nguyên web bằng HTTP, trình duyệt biến URL thành một yêu cầu và
gửi nó đến máy chủ HTTP. Máy chủ HTTP diễn giải request message
và trả về một response message thích hợp, là tài nguyên bạn yêu cầu
hoặc một thông báo lỗi.
UNIFORM RESOURSE

LOCATOR
URL được sử dụng để xác định duy nhất một tài nguyên trên web.
URL có cú pháp như sau: Protocol://hostname:port / path-and-file-
name

• Có 4 phần trong một URL: giao thức, tên máy chủ, cổng, tên
đường dẫn và tệp tin.
HTTP Protocol

- Bất cứ khi nào nhập URL và hộp địa chỉ của trình duyệt, trình duyệt sẽ dịch URL thành một
request message theo giao thức được chỉ định và gửi đến máy chủ.

- Khi request message đến máy chủ có thể thực hiện một trong các hành động sau:

1. Máy chủ diễn giải yêu cầu nhận được, ánh xạ yêu cầu thành một tệp trong thư mục tài liệu
của máy chủ và trả lại tệp được yêu cầu cho máy khách.
2. Máy chủ thông dịch yêu cầu đã nhận, ánh xạ yêu cầu thành một chương trình được lưu trong
máy chủ, thực thi chương trình và trả kết quả đầu ra của chương trình cho khách hàng.
3. Yêu cầu không được đáp ứng, máy chủ trả về thông báo lỗi.
HTTP qua TCP/IP
• HTTP là một giao thức tầng ứng dụng client-
server. Nó thường chạy qua kết nối TCP/IP.

• TCP/IP là một tập hợp các giao thức truyền tải


và giao thức mạng để các máy giao tiếp với
nhau qua mạng.

• IP là một tầng giao thức mạng, xử lý việc định


tuyến và xác định địa chỉ mạng.

• TCP là một giao thức tầng vận chuyển, chịu


trách nhiệm thiết lập kết nối giữa hai máy. =>
Để giao tiếp qua TCP/IP cần biết địa chỉ IP hoặc
hostname và số cổng.
02
HTTP Request và
Response
Message
HTTP Request và Response Message
HTTP Message bao gồm tiêu đề và nội
HTTP Request dung thư tùy chọn được phân tách bằng
Message một dòng trống.

HTTP Response
Message
HTTP Request Message

01

Request Line

45K
02

Request Headers
Request Line
request-method-name request-URI
HTTP-version

Request Headers
request-header-name: request-header-value1, request-
header-value2, ...
Ví dụ minh họa cho HTTP Request Message
HTTP Response Message

01

Status Line

02
45K

Response Headers
Status Line
HTTP-version status-code reason-phrase

Response Headers
response-header-name: response-header-value1,
response-header-value2, ...
Ví dụ minh họa cho HTTP Response Message
03

Phương thức
HTTP Request
Phương thức HTTP Request

• Giao thức HTTP xác định một tập hợp các phương thức request. Máy
khách có thể sử dụng mộ trong các phương thức này để gửi request
message đến máy chủ HTTP.

• Các phương thức là: GET, HEAD, POST, PUT, DELETE, TRACE,
CONNECT.
04

Mã trạng thái
phản hồi
Mã trạng thái phản hồi
Dòng đầu tiên của Response Message chứa mã trạng thái phản hồi, được tạo
bởi máy chủ để cho biết kết quả của yêu cầu. Mã trạng thái là một bộ có 3 chữ
số:
Kết luận
HTTP là một giao thức sử dụng siêu văn bản được truyền qua web.
Do tính đơn giản của nó, HTTP là giao được sử dụng rộng rãi nhất để
truyền dữ liệu qua web, nhưng những dữ liệu được trao đổi bằng HTTP
không an toàn như mong muốn. Trên thực tế, siêu văn bản được trao đổi
bằng cách sử dụng HTTP là bản rõ.
HTTP
REQUESTS
01 02 03
TỔNG
QUAN WEB DEMO
VỀ SCRAPIN THỰC
HTTP G VỚI NGHIỆ
GIAO PYTHON M
THỨC
HTTP
REQUESTS
01 02 03
TỔNG
QUAN WEB DEMO
VỀ SCRAPIN THỰC
HTTP G VỚI NGHIỆ
GIAO PYTHON M
THỨC
WEB SCRAPING VỚI PYTHON

01 02 03

Khái niệm Web Giới thiệu Phân tích cú


Scraping BeautifulSoup pháp HTML
nâng cao
01

Khái niệm Web Scraping


Web Scraping
• Là hoạt động thu thập dữ liệu thông qua bất kỳ phương tiện nào khác ngoài
chương trình tương tác với API.

• Được thực hiện bằng cách viết 1 chương trình tự động truy vấn máy chủ
web, yêu cầu dữ liệu, sau đó phân tích cú pháp dữ liệu đó để trích xuất
thông tin cần thiết.

• Web Scraping bao gồm nhiều kỹ thuật và công nghệ lập trình.
02

Giới thiệu về BeautifulSoup


Khái niệm về BeautifulSoup

 BeautifulSoup là 1 thư viện


Python dùng để lấy dữ liệu
ra khỏi các file HTML và
XML.
 Nó hoạt động cùng với các
parser cung cấp cho bạn
các cách để điều hướng,
tìm kiếm và chỉnh sửa
trong parse tree.
try:
html =
urlopen("http://www.pythonscraping.com/pages/page1.html")
except HTTPError as e:
print(e)
#return null, break, or do some other "Plan B"
else:
#program continues. Note: If you return or break in the
#exception catch, you do not need to use the "else" statement
Kết nối đáng tin cậy
html = urlopen(“http://www.pythonscraping.com/pages/page1.html”)

Có hai điều có thể xảy ra trong dòng này:

• TH1: Không tìm try:


html = urlopen("http://www.pythonscraping.com/pages/page1.html")
thấy trang trên máy except HTTPError as e:
chủ (hoặc có một số print(e)
#return null, break, or do some other "Plan B"
lỗi khi truy xuất else:
#program continues. Note: If you return or break in the
trang) #exception catch, you do not need to use the "else" statement
Kết nối đáng tin cậy
html = urlopen(“http://www.pythonscraping.com/pages/page1.html”)

Có hai điều có thể xảy ra trong dòng này:

• TH2: Không tìm thấy máy chủ:


urlopen trả về None object. Chúng if html is None:
print("URL is not found")
ta có thể kiểm tra để xem tài liệu
else:
html trả về có phải là None không: #program continues
03

Phân tích cú pháp HTML nâng cao


Phân tích cú pháp HTML nâng cao
Find() và findALL()

BeautifulSoup Object khác

Biểu chức chính quy và


BeautifulSoup
Phân tích cú pháp HTML nâng cao

Find( ) và findAll( ) của BeautifulSoup là hai hàm được sử dụng


nhiều nhất, ta có thể dễ dàng lọc các trang HTML để tìm danh
Find() và findALL()
sách các thẻ mong muốn hoặc một thẻ đơn dựa trên các thuộc tính
khác nhau của chúng.

findAll(tag, attributes, recursive, text, limit, keywords)

find(tag, attributes, recursive, text, keywords)


Phân tích cú pháp HTML nâng cao

- Các BeatifulSoup Object khác:


BeautifulSoup Object •BeautifulSoup objects
khác •Tag object
•NavigableString objects
•Comment object.
Phân tích cú pháp HTML nâng cao
- Một biểu thức chính quy có thể đươc chèn dưới dạng
bất kỳ đối số nào trong biểu thức BeautifulSoup, cho
phép linh hoạt trong việc tìm kiếm các phần tử mục
Biểu chức chính quy và tiêu.
BeautifulSoup
- Biểu thức chính quy và BeautifulSoup
•Truy cập các thuộc tính: myTag.attrs
•Biểu thức Lambda: là một hàm được truyền vào
một hàm khác dưới dạng một biến. Sử dụng các hàm
lambda trong BeautifulSoup các bộ chọn có thể hoạt
động như một sự thay thế tuyệt vời cho việc viết một
biểu thức chính quy.
04

Sử dụng API
Khái niệm API

• API là cụm viết tắt của Giao diện


chương trình ứng dụng.

• API là cơ chế cho phép 2 thành


phần phần mềm giao tiếp với nhau
bằng 1 tập hợp các định nghĩa và
giao thức.
Cách API hoạt động
• Các API hoạt động thông qua HTTP, cùng một giao thức được sử dụng để tìm
nạp dữ liệu cho các trang web, tải xuống tệp và thực hiện hầu hết mọi thứ khác
trên Internet.

• Điều duy nhất làm cho API trở thành một API là cú pháp được quản lý chặt chẽ
mà nó sử dụng và thực tế là các API trình bày dữ liệu của chúng dưới dạng
JSON hoặc XML, thay vì HTML.
Các quy ước chung
• GET sử dụng khi truy cập một trang web thông qua
thanh địa chỉ trong trình duyệt.

• POST sử dụng khi điền vào biểu mẫu hoặc gửi thông
tin.

• PUT request được sử dung để cập nhật một đối tượng


hoặc thông tin.

• DELETE được sử dụng để xóa một đối tượng.


• Đối với các công cụ tìm kiếm, một trong những công việc
không thể thiếu là thu thập dữ liệu và đánh giá website.

• Đối với người dùng truy nhập web nói chung, khi thực hiện tốt
quá trình thu thập dữ liệu từ website sẽ giúp người dùng dễ

Kết luận dàng tìm được những bài viết, trang web có nội dung phù hợp
với keyword của mình.

• Đối với các doanh nghiệp, thông qua các phương pháp thu
thập dữ liệu có thể nắm bắt được thông tin từ các đối thủ cạnh
tranh; tối ưu SEO từ việc tìm kiếm được các nội dung hay, hấp
dẫn; tiết kiệ được thời gian công sức và chi phí trong các chiến
dịch tiếp thị; điều chỉnh kế hoạch marketing, xa hơn là chiến
lược kinh doanh cho phù hợp,…
HTTP
REQUESTS
01 02 03
TỔNG
QUAN WEB DEMO
VỀ SCRAPIN THỰC
HTTP G VỚI NGHIỆ
GIAO PYTHON M
THỨC
HTTP
REQUESTS
01 02 03
TỔNG
QUAN WEB DEMO
VỀ SCRAPIN THỰC
HTTP G VỚI NGHIỆ
GIAO PYTHON M
THỨC
01

Giới thiệu mô hình


Giới thiệu mô hình
Kịch bản 1: Tạo GET request lấy data từ server

Yêu cầu: Thư viện Request

Kịch bản 2: Tạo POST request gửi data tới server

Yêu cầu: Thư viện Request

Kịch bản 3: Tạo PUT request chỉnh sửa thông tin một cá thể trên server

Yêu cầu: Thư viện Request

Kịch bản 4: Tạo DELETE request xóa thông tin một cá thể trên server

Yêu cầu: Thư viện Request


Giới thiệu mô hình
Kịch bản 5: Tải các hình ảnh từ trang web https://unsplash.com/ về máy tính cá nhân
Yêu cầu: Thư viện BeautifulSoup, urllib, request
Truy cập trang web https://unsplash.com/ để kiểm tra HTML

Kịch bản 6: Sử dụng thư viện BeautifulSoup kết hợp với Request để lấy thông tin các
công ty tuyển dụng từ trang web https://timesjobs.com/ theo đầu vào của cá nhân người
dùng
Yêu cầu: Thư viện BeautifulSoup, request, lxml
Truy cập trang web https://timesjobs.com/ để kiểm tra HTML
Chi tiết cấu hình và cài đặt
Thư viện BeautifulSoup không phải là thư viện mặc định nên nó phải được cài đặt.
Có thể tìm thấy hướng dẫn đầy đủ để cài đặt BeautifulSoup4 tại
https://www.crummy.com/software/BeautifulSoup/bs4/doc/

Đối với máy Mac:


Đối với Linux: $ sudo easy_install pip
Phương pháp cơ bản cho linux là: Câu lệnh này để cài đặt trình quản lý pip, tiếp theo sử dụng
Cho Python 2: $ sudo apt-get install python-bs4 $ pip install beautifulsoup4
Cho Python 3: $ sudo apt-get install python3-bs4 Cũng có thể gọi pip3 để cài đặt nếu sử dụng phiên bản Python
3:
$ pip3 install beautifulsoup4
Chi tiết cấu hình và cài đặt
Đối với Windows:
Cài đặt các gói trong windows gần giống với quy trình cho Mac và Linux. Tải xuống bản
phát hành BeautifulSoup 4 gần đây nhất từ URL tải xuống ở trên, điều hướng đến thư mục
đã giải nén nó và chạy:
> python setup.py install
Sau khi cài dặt BeautifulSoup bây giờ được công nhận là một thư viện Python. Để kiểm tra
có thể mở Python terminal và nhập:
$python
> from bs4 import BeautifulSoup
quá trình nhập sẽ hoàn tất mà không có lỗi.
Triển khai và đánh giá
+ Kịch bản 1: Tạo Get request lấy data từ server

+ Kịch bản 2: Tạo Post request gửi data tới server


Triển khai và đánh giá
+ Kịch bản 3: Tạo Put request chỉnh sửa thông tin 1 cá thể trên server

+ Kịch bản 4: Tạo Delete request xóa thông tin 1 cá thể trên server
Triển khai và đánh giá
+ Kịch bản 5: Tải các hình ảnh từ trang web https://unsplash.com/ về máy tính cá nhân.
-Bước 1: Import 3 thư viện BeautifulSoup, urllib, request

-Bước 2: Tìm thẻ cha chứa các hình ảnh trong trang web
Triển khai và đánh giá
-Bước 3: Tạo mảng chứa các link hình ảnh từ trang web

-Bước 4: Tải các hình ảnh trong trang web về máy của mình. Kết thúc
Triển khai và đánh giá
+ Kịch bản 6: Sử dụng thư viện BeautifulSoup kết hợp với Request lấy thông tin các công ty
tuyển dụng, từ trang web https://timesjobs.com/ theo đầu vào của cá nhân mình.

-Bước 1: Import thư viện BeautifulSoup và Request


Triển khai và đánh giá
-Bước 2: Nhập thông tin vào các ô input (các trường này dùng để lọc các công ty).
Triển khai và đánh giá

-Bước 3: Tạo hàm tìm kiếm công việc (Hàm này sẽ lấy tất cả các công ty có
trong trang web rồi lọc các công ty theo điều kiện ở trên. Nếu công ty nào phù
hợp nó sẽ được hiện thị tại console. Kết thúc
Triển khai và đánh giá
Cảm ơn thầy, cô và
mọi người đã lắng
nghe!

You might also like