Я новичок в Python и до сих пор не понимаю всего этого и его функциональности, но я приближаюсь к тому, чего я пытаюсь достичь.
По сути, у меня есть программа для очистки нужных мне данных с веб-сайта, но когда он печатает выбранные слова / элементы из строки "specs", он также печатает такие символы, как [] и '' изстрока.
Примером является то, что я пытаюсь просто получить тип «коробка передач», «тип топлива» и «пробег» из списка ли, которые я преобразовал в строку с заводом, чтобы затем выбрать конкретныйэлемент из этой строки.
То, что я получаю с текущей программой, это:
['Ручной'] ['Бензин'] ['86,863 миль']
Что я хотел бы получитьВ результате печати можно получить следующий результат:
Manual, Petrol, 86 863 миль
, который при экспорте в отдельные столбцы в моем .csv должен отображаться в правильных столбцах под соответствующими заголовками.
Я попытался .text удалить только текст, но он обнаруживается, у объекта «список» нет атрибута «текст» ошибка.
import csv
import requests
from bs4 import BeautifulSoup
outfile = open('pistonheads.csv','w', newline='')
writer = csv.writer(outfile)
writer.writerow(["Link", "Make", "Model", "Price", "Image Link",
"Gearbox", "Fuel", "Mileage"])
url = 'https://www.pistonheads.com/classifieds?Category=used- cars&Page=1&ResultsPerPage=100'
get_url = requests.get(url)
get_text = get_url.text
soup = BeautifulSoup(get_text, 'html.parser')
car_link = soup.find_all('div', 'listing-headline', 'price')
for div in car_link:
links = div.findAll('a')
for a in links:
link = ("https://www.pistonheads.com" + a['href'])
make = (a['href'].split('/')[-4])
model = (a['href'].split('/')[-3])
price = a.find('span').text.rstrip()
image_link = a.parent.parent.find('img')['src']
image = ("https:") + image_link
vehicle_details = a.parent.parent.find('ul', class_='specs')
specs = list(vehicle_details.stripped_strings)
gearbox = specs[3:]
fuel = specs[1:2]
mileage = specs[0:1]
writer.writerow([link, make, model, price, image, gearbox, fuel, mileage])
print(link, make, model, price, image, gearbox, fuel, mileage)
outfile.close()