【发布时间】:2018-11-14 20:36:08
【问题描述】:
我开始使用 Python 和 Beautiful soup。
我正在练习使用以下代码:-
import requests
r = requests.get('https://www.autobarn.com.au/car-care-touring-accessories/car-care/washes?dir=asc&limit=48&order=name')
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.text, 'lxml')
results = soup.find_all('div', class_='product-details')
records = []
for result in results:
SKU = result.find('small',class_='text-muted').text.strip()
DESC = result.find('strong').text.strip().upper()
PRICE = result.find ('span',class_='price')
URL = result.find('a')['href']
records.append((SKU, DESC, PRICE, URL))
import pandas as pd
df = pd.DataFrame(records, columns=['SKU','DESCRIPTION', 'RRP', 'URL'])
df.to_csv('d:\\WEB SCRAPE TEST 4.csv', index=False, encoding='utf-8')
这可以很好地获取我想要的信息。
但是,就价格而言,它会遍历所有周围的 HTML 信息。
例如 span class="price" id="product-price-1242" 跨度 class="价格">$6.99
这似乎是由 2 个标签一个接一个相同造成的:- 跨度 class='价格' span class='价格'
虽然我可以在 csv 文件中清理价格数据,但有没有办法改进代码以获取价格?
提前致谢
【问题讨论】:
标签: python-3.x web-scraping beautifulsoup