我已经设法建立了一个非常原始的程序,从活塞头刮取车辆数据,并将其打印到一个.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()
你可以试试这个:
原因是
price = soup.find('span')
.find()
将获取它找到的第一个元素。你让它查看你的soup
对象。但是你想要它看的地方,在你的a
之内,因为这就是你用for a in links:
循环的地方我还添加了
.text
,因为我假设您只需要文本,而不是整个标记元素。即price = a.find('span').text
相关问题 更多 >
编程相关推荐