Вычеркните номер из очищенных данных и сохраните его в отдельной переменной

#python #web-scraping

Вопрос:

Я использую следующий код для очистки данных. И я хочу извлечь и сохранить числовые данные из строк.

 import requests import pandas as pd from bs4 import BeautifulSoup as soup  base_site_1 = "https://www.cartrade.com/buy-used-cars/new-delhi/c#city=10amp;sc=-1amp;so=-1amp;pn=1"  response = requests.get(base_site_1) response.status_code  html = response.content html[:100]  html5lib_soup = soup(html, 'html5lib')  with open('cartrade_used_cars_mumbai_html5lib_Parser.html', 'wb') as file:  file.write(html5lib_soup.prettify('utf-8'))  html5lib_soup  model = []  for i in html5lib_soup.findAll('div', {'class' : 'grid_cnt_new'}):  model.append(i.a.text.strip())  model  

Выход есть

 ['2013 Hyundai Verna Fluidic 1.6 VTVT SX',  '2021 Land Rover Discovery Sport R-Dynamic SE',  '2011 Hyundai Santro Xing GLS (CNG)',  '2016 Porsche Cayenne 3.2 V6 Petrol',  '2010 Hyundai i10 Era',  '2011 Honda City V MT CNG Compatible',  '2016 Mercedes-Benz GLE 250 d',  '2013 Honda Amaze 1.5 S i-DTEC',  '2013 Maruti Suzuki Estilo LXi BS-IV',  '2019 Tata Tiago Revotron XZ',  '2015 Toyota Innova 2.5 G BS IV 7 STR',  '2009 Honda City 1.5 S MT',  '2009 Hyundai Santro Xing GLS',  '2011 Mahindra Scorpio VLX 4WD Airbag BS-IV',  '2014 Maruti Suzuki Celerio LXi',  '2014 Hyundai Grand i10 Magna 1.2 Kappa VTVT [2013-2016]',  '2016 Hyundai Grand i10 Magna 1.2 Kappa VTVT [2017-2020]',  '2011 Hyundai i10 Sportz 1.2 Kappa2',  '2016 Ford EcoSport Titanium 1.5L TDCi',  '2015 Maruti Suzuki Baleno Delta 1.2',  '2019 Volkswagen Ameo Trendline 1.2L (P)',  '2010 Honda City 1.5 S MT',  '2014 Renault Duster 85 PS RxL Diesel',  '2014 Honda Brio S MT',  '2017 Maruti Suzuki Vitara Brezza ZDi  Dual Tone [2017-2018]',  '2020 Maruti Suzuki Wagon R 1.0 VXI  (O)',  '2016 Maruti Suzuki Ciaz ZXI  AT',  '2017 Maruti Suzuki Celerio ZXi [2017-2019]',  '2011 Toyota Corolla Altis 1.8 G',  '2012 Honda Brio E MT',  '2013 Toyota Innova 2.5 GX 7 STR BS-III',  '2018 Maruti Suzuki Swift Lxi (O) [2014-2017]']  

И я хочу удалить 2013 год из «2013 Hyundai Verna Fluidic 1.6 VTVT SX», и я хочу сделать то же самое для каждой строки, сохранить число в отдельной переменной и отобразить выходные данные, которые представляют собой набор всех чисел из каждой строки, когда это необходимо, как это

 ['2013',  '2021',  '2011',  '2016',  '2010',  '2011',  '2016',  '2013',  '2013',  '2019',  '2015',  '2009',  '2009',  '2011',  '2014',  '2014',  '2016',  '2011',  '2016',  '2015',  '2019',  '2010',  '2014',  '2014',  '2017',  '2020',  '2016',  '2017',  '2011',  '2012',  '2013',  '2018']  

Ответ №1:

Вы можете использовать понимание списка, чтобы выбрать первые 4 символа каждой строки и сохранить их в новом списке.

 years = [car[:4] for car in cars]  

Если вы хотите отобразить результаты в строке, вы можете сделать

 print(*years, sep="n")