Yêu cầu thg 11 2, 2021 11:29 SA 110 0 2
  • 110 0 2
+1

lấy HTML bằng Python

Chia sẻ
  • 110 0 2

Chào mọi người Hiện mình đang gặp một ít khó khăn là mình muốn lấy dữ liệu vào ngày hiện tại của một trang web bằng Python. Quy trình xử lý mình dự định: Lấy html của web -> Lấy vùng giá trị dữ liệu (tag chứa dữ liệu) -->Lấy chính xác dữ liệu Nhưng mà giao diện trang web sẽ có một ô nhập ngày muốn xem vào, nên lúc mình sử dụng Ctrl + U để xem thì không có dữ liệu mình cần tìm mà hiện dữ liệu chung chung. Mình có inspect kỹ hơn chỗ nhập ngày (trong trang web) thì đoạn htmt đó gắn tag là input: <input id = "txttungay" placeholder = "Ngày" Class = ''...'' size ''...'' type ''text'' value = "...">. Bây giờ mình nên làm sao để nhập ngày vào, và trả về đoạn dữ liệu html của ngày hôm đó. Mình đang thử requests Mình mới nghiên cứu về html nên có thể sai sót vài chỗ

2 CÂU TRẢ LỜI


Đã trả lời thg 11 2, 2021 12:31 CH
0

Sau bước nhập thông tin vào ô input đó, bạn xem trang web đó gửi request đến đâu, params, headers, cookie như thế nào(trong tab network). Đây chính là request mà bạn cần nghiên cứu, thay vì tìm cách nhập đc thông tin vào ô input và bấm submit thì tìm cách call request/api mà trang đó đang dùng.

Trong trường hợp bạn vẫn muốn nhập thì có thể dùng các headless browser driver để làm hành động nhập input, click submit.. rồi crawl dữ liệu. Ví dụ như puppeteer, playwright...

Chia sẻ
Đã trả lời thg 11 4, 2021 1:09 SA
0

Bạn thử tìm hiểu về selenium python nhé.

Để nhập ngày vào thì bạn dùng hàm send_keys

text_input = driver.find_element_by_id('txttungay')
text_input.send_keys(date)

Nếu cần nhấn nút nào đó để load dữ liệu thì bạn tìm đến nút đó và gọi làm click().

Còn nếu việc thực hiện load dữ liệu xảy ra lúc txttungay onchange mà đoạn code trên không hoạt động thì bạn gửi thêm Keys.TAB vào text_input nhé. Nhớ from selenium.webdriver.common.keys import Keys

Sau đó bạn cho sleep 1 thời gian hợp lý để load dữ liệu xong rồi xử lý

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí