Позвольте мне открыть новый ответ в ответ на новый вопрос.
После того, как я попробую некоторые методы с requests
и urllib
, я думаю, что лучше использовать контроллер веб-драйвера selenium
.
Следующий код будет захватывать строки таблицы так, как вы хотите.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
url = 'https://parivahan.gov.in/rcdlstatus/'
# Optional: Getting "Headless" browser, ie suppressing the browser window from showing
chrome_options = Options()
chrome_options.add_argument("--headless")
# Let the driver open, fill and submit the form
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get(url)
driver.delete_all_cookies()
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.NAME, 'form_rcdl:j_idt34')))
input1 = driver.find_element_by_name('form_rcdl:tf_reg_no1')
input1.send_keys('GJ03KA')
input2 = driver.find_element_by_name('form_rcdl:tf_reg_no2')
input2.send_keys('0803')
driver.find_element_by_name('form_rcdl:j_idt34').click()
wait = WebDriverWait(driver, 10)
# Get the result table
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "form_rcdl:j_idt63"))
)
result_html = driver.page_source
#print(result_html)
soup = BeautifulSoup(result_html, 'lxml')
print(soup.findAll('tr'))
except TimeoutException:
driver.quit()
print('Time out.')
Ниже показан результат печати тегов html таблицы в супе.
Я надеюсь, что правительство не обнаружит и не заблокирует этот путь, прежде чем вы попробуете. Lol
Надеюсь, это поможет!При желании вы можете обратиться к следующим ссылкам: