在一页Web站点Python中循环浏览所有产品

时间:2019-06-12 08:16:13

标签: python python-3.x beautifulsoup

有一个包含产品(例如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
    }
}

我希望所有产品都可以在控制台上显示。

1 个答案:

答案 0 :(得分:1)

您正在循环中搜索r.textsoup.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)