【发布时间】:2019-01-27 21:57:03
【问题描述】:
我已经设法构建了一个非常原始的程序来从活塞头刮取车辆数据并将其打印到带有链接、品牌、型号的.csv 文件,并且正在努力获取价格,这是我遇到问题的地方。
我想将价格刮到我的.csv 文件 (Price) 的第四列,并正确打印网站上每辆车的价格。
我只是让它打印一辆车的价格,然后在.csv 文件中的每辆车旁边一次又一次地重复它。
我尝试过soup.findAll 和soup.find_all 来查看解析多个元素是否可行,但这只会造成更大的混乱。
有人可以帮忙吗?
我也在尝试抓取图像 src,并希望将其打印在名为 images 的另一列 (5) 上。
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()
【问题讨论】:
标签: python python-3.x beautifulsoup