Вы почти закончили свой код, но вы должны следовать этому, если вам нужно получить доступ к multi-url и сохранить все данные.
- спасите каждый суп
- Пройдите через каждый суп и сохраните данные в список
- запись данных
мой полный код
import csv
import requests
from bs4 import BeautifulSoup
urls = ["https://www.medplusmedicalsupply.com/exam-and-diagnostic?product_list_limit=25",
"https://www.medplusmedicalsupply.com/exam-and-diagnostic?p=2&product_list_limit=25"]
all_product = []
for index,url in enumerate(urls):
html = requests.get(url).text
soup = BeautifulSoup(html, "html.parser")
products = soup.findAll('div', {"class": "product details product-item-details"})
all_product.append(products)
resultset = []
for products in all_product:
for product in products:
product_details = dict()
product_details['name'] = product.find('a').text.strip('\n\r\t": ').strip('\n\r\t": ').strip('\n\r\t": ').strip('\n\r\t": ')
product_details['brand'] = product.find('div', {'class': 'value'}).text.strip('\n\r\t": ').strip('\n\r\t": ').strip('\n\r\t": ')
product_details['packaging'] = product.find('div', {'class': 'pack'}).text.strip('\n\r\t": ').strip('\n\r\t": ').strip('\n\r\t": ')
product_details['availability'] = product.find('div', {'class': 'avail pack'}).text.strip('\n\r\t": ').strip('\n\r\t": ').strip('\n\r\t": ')
product_details['price'] = product.find('span', {'class': 'price'}).text.strip('\n\r\t": ').strip('\n\r\t": ').strip('\n\r\t": ')
product_details['packaging'] = product_details['packaging'][9:] # here we're cutting redundant part of string "Brand: \n\n"
product_details['availability'] = product_details['availability'][16:] # here we're cutting redundant part of string "Availability: \n\n"
resultset.append(product_details)
with open('products.csv', 'w+',,newline='') as csvFile:
writer = csv.writer(csvFile)
writer.writerow(['Name', 'Brand', 'Packaging', 'Availability', 'Price'])
for product in resultset:
writer.writerow([product['name'], product['brand'],product['packaging'], product['availability'], product['price']])