有一个包含产品(例如Amazon)的单页网站,我试图获取产品名称,价格和发布日期。 我的代码仅显示第一个产品。
我正在为python 3使用beautifulsoup库。
func pickerView(_ pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat {
let fullWidth = self.frame.width
switch component {
case 0:
return fullWidth/2
default:
return fullWidth/10
}
}
我希望所有产品都可以在控制台上显示。
答案 0 :(得分:1)
您正在循环中搜索r.text
(soup.find(...)
)。
find_all返回了一个results
数组,因此要获取所需的数据,应在result
循环的result.find(...)
对象(for result in results:
)中进行搜索。 / p>
from bs4 import BeautifulSoup
r = requests.get('https://tap.az/all/consumer-electronics/phones?p%5B749%5D=3860')
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', attrs={'class': 'products-i'})
records = []
for result in results:
model = result.find('div', attrs={'class': 'products-name'}).text
price = result.find('span', attrs={'class': 'price-val'}).text + ' AZN'
date_and_place = result.find('div', attrs={'class': 'products-created'}).text
url = result.find('a', attrs={'class': 'products-link'}) # NEED UPDATE! URGENT!
records.append((model, price, date_and_place))
print(records)