Мне удалось создать очень примитивную программу для очистки данных автомобиля от поршневых головок и печати в файл .csv
со ссылкой, маркой, моделью, и я работаю над получением цены, по которой я сталкиваюсь с проблемой.
Я хочу прокрутить цены до четвертого столбца в моем файле .csv
(Price
) и правильно распечатать цены для каждого транспортного средства на веб-сайте.
Я получаю печать только с одного автомобиля и повторяю ее снова и снова рядом с каждым автомобилем в файле .csv
.
Я попытался soup.findAll
и soup.find_all
, чтобы увидеть, будет ли работать разбор нескольких элементов, но это только создает больший беспорядок.
Может ли кто-нибудь помочь?
Я также пытаюсь почистить изображение src и хотел бы напечатать его в другом столбце (5), который называется images
.
import csv ; import requests
from bs4 import BeautifulSoup
outfile = open('pistonheads.csv','w', newline='')
writer = csv.writer(outfile)
writer.writerow(["Link", "Make", "Model", "Price"])
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 = soup.find('span')
writer.writerow([link, make, model, price])
print(link, make, model, price)
outfile.close()