Я пытаюсь получить данные с веб-страницы. Вот ссылка https://www.cardekho.com/compare-cars.. На этой странице нам нужно провести сравнение таблиц данных автомобилей и их характеристик, как только мы дадим в раскрывающемся меню URL-адрес моделей автомобилей и их варианты. Вот мой пример кода.
from bs4 import BeautifulSoup
import requests
import csv
def job():
url = 'https://www.cardekho.com/compare/maruti-gypsy-and-maruti-omni.htm'
headers = {'User-Agent': 'Mozilla/65.0'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
stat_table_1 = soup.find_all('table')
print(len(stat_table_1))
tab_1 = stat_table_1[0]
tab_2 = stat_table_1[1]
tab_3 = stat_table_1[2]
tab_4 = stat_table_1[3]
tab_5 = stat_table_1[4]
rows_tab_1 = tab_1.findAll('tr')
rows_tab_2 = tab_2.findAll('tr')
rows_tab_3 = tab_3.findAll('tr')
rows_tab_4 = tab_4.findAll('tr')
rows_tab_5 = tab_5.findAll('tr')
csv_file_1 = open("D:/CarDekho_Data/maruti/maruti_2/overview.csv", 'wt', encoding="utf-8", newline='')
csv_file_2 = open("D:/CarDekho_Data/maruti/maruti_2/engine.csv", 'wt', encoding="utf-8", newline='')
csv_file_3 = open("D:/CarDekho_Data/maruti/maruti_2/transmission.csv", 'wt', encoding="utf-8", newline='')
csv_file_4 = open("D:/CarDekho_Data/maruti/maruti_2/steering.csv", 'wt', encoding="utf-8", newline='')
csv_file_5 = open("D:/CarDekho_Data/maruti/maruti_2/brake_system.csv", 'wt', encoding="utf-8", newline='')
writer_1 = csv.writer(csv_file_1)
writer_2 = csv.writer(csv_file_2)
writer_3 = csv.writer(csv_file_3)
writer_4 = csv.writer(csv_file_4)
writer_5 = csv.writer(csv_file_5)
try:
for row in rows_tab_1:
csv_row = []
for cell in row.findAll(['td', 'th']):
csv_row.append(cell.get_text())
writer_1.writerow(csv_row)
finally:
csv_file_1.close()
try:
for row in rows_tab_2:
csv_row = []
for cell in row.findAll(['td', 'th']):
csv_row.append(cell.get_text())
writer_2.writerow(csv_row)
finally:
csv_file_2.close()
try:
for row in rows_tab_3:
csv_row = []
for cell in row.findAll(['td', 'th']):
csv_row.append(cell.get_text())
writer_3.writerow(csv_row)
finally:
csv_file_3.close()
try:
for row in rows_tab_4:
csv_row = []
for cell in row.findAll(['td', 'th']):
csv_row.append(cell.get_text())
writer_4.writerow(csv_row)
finally:
csv_file_4.close()
try:
for row in rows_tab_5:
csv_row = []
for cell in row.findAll(['td', 'th']):
csv_row.append(cell.get_text())
writer_5.writerow(csv_row)
finally:
csv_file_5.close()
Но здесь проблема в том, что я не получаю точные данные, которые мне нужны из-за URL-адресов. Это означает, что, если я приведу четыре модели автомобилей и их варианты для сравнения, он случайным образом предоставит данные этой модели автомобиля из упомянутого выпадающего меню.
Может кто-нибудь объяснить, как я могу решить эту проблему и получить точные данные, которые мне нужны, с этого URL.
Любая помощь будет принята с благодарностью.