bảng cạo với python dựa trên ngày tháng
kể từ một tuần trước, tôi đã cố gắng loại bỏ một bảng từ trang web này https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspxnhưng tôi không biết phải viết gì, tôi rất bối rối. Tôi đang cố gắng tìm kiếm bảng giao dịch kurs từ 2015-2020 (20 tháng 4 năm 2015-20 tháng 11 năm 2020,
import requests
from bs4 import BeautifulSoup
import pandas as pd
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36",
"X-Requested-With":"XMLHttpRequest"
}
url = "https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspx"
import requests
from lxml import html
response = requests.get(url)
content= response.content
print(content)
Trả lời
Bạn cần sử dụng Selenium . Bạn có thể cài đặt Selenium và sau đó bạn có thể cài đặt trình điều khiển . Tôi sử dụng chrome và sau đó khi bạn cài đặt nó, hãy ghi chú lại đường dẫn đó và thiết lập DRIVER_PATHvị trí của bạn
Trong đoạn mã dưới đây, những gì tôi làm về cơ bản là yêu cầu liên kết bạn đã đăng và sau đó tôi nhập ngày mà bạn có thể thay đổi. Cuối cùng tôi nhấp vào nút gửi. Điều đó tạo ra bảng trong phạm vi ngày. Bây giờ bạn có thể viết mã theo dõi để thu thập thông tin từ bảng.
Mã
import requests
from selenium import webdriver
DRIVER_PATH = 'Yourpath/chromedriver'
driver = webdriver.Chrome(executable_path=DRIVER_PATH)
driver.get('https://www.bi.go.id/id/moneter/informasi-kurs/transaksi-bi/Default.aspx')
start_date = driver.find_element_by_id("ctl00_PlaceHolderMain_biWebKursTransaksiBI_txtFrom")
start_date.send_keys("15-Nov-20")
end_date = driver.find_element_by_id("ctl00_PlaceHolderMain_biWebKursTransaksiBI_txtTo")
end_date.send_keys("20-Nov-20")
submit_button = driver.find_element_by_id("ctl00_PlaceHolderMain_biWebKursTransaksiBI_btnSearch1").click()