#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")