noam76

scrapy

May 9th, 2023 (edited)
819
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.48 KB | None | 0 0
  1. import scrapy
  2. import openpyxl
  3.  
  4. class SolarKeyMarkSpider(scrapy.Spider):
  5.     name = "solarkeymark"
  6.     start_urls = [
  7.         "https://solarkeymark.eu/database/"
  8.     ]
  9.  
  10.     def parse(self, response):
  11.         # Récupération de tous les éléments de la liste de résultats de tests thermiques
  12.         test_results = response.xpath('//div[@id="testResults"]/table/tbody/tr')
  13.  
  14.         # Initialisation de la liste de résultats
  15.         results_list = []
  16.  
  17.         # Parcourir tous les résultats de test et extraire les données souhaitées
  18.         for result in test_results:
  19.             company_name = result.xpath('.//td[1]/text()').get()
  20.             brand = result.xpath('.//td[2]/text()').get()
  21.             license_number = result.xpath('.//td[3]/text()').get()
  22.             eta_0b = result.xpath('.//td[4]/text()').get()
  23.             a1 = result.xpath('.//td[5]/text()').get()
  24.             a2 = result.xpath('.//td[6]/text()').get()
  25.             a3 = result.xpath('.//td[7]/text()').get()
  26.  
  27.             # Ajouter les données à la liste des résultats
  28.             results_list.append({
  29.                 "Company Name": company_name,
  30.                 "Brand": brand,
  31.                 "License Number": license_number,
  32.                 "η0,b": eta_0b,
  33.                 "a1": a1,
  34.                 "a2": a2,
  35.                 "a3": a3
  36.             })
  37.  
  38.         # Exporter les données dans un fichier Excel
  39.         wb = openpyxl.Workbook()
  40.         ws = wb.active
  41.  
  42.         # Écrire les en-têtes de colonne
  43.         ws.cell(row=1, column=1, value="Company Name")
  44.         ws.cell(row=1, column=2, value="Brand")
  45.         ws.cell(row=1, column=3, value="License Number")
  46.         ws.cell(row=1, column=4, value="η0,b")
  47.         ws.cell(row=1, column=5, value="a1")
  48.         ws.cell(row=1, column=6, value="a2")
  49.         ws.cell(row=1, column=7, value="a3")
  50.  
  51.         # Écrire les données dans les lignes suivantes
  52.         for i, data in enumerate(results_list):
  53.             row = i + 2
  54.             ws.cell(row=row, column=1, value=data["Company Name"])
  55.             ws.cell(row=row, column=2, value=data["Brand"])
  56.             ws.cell(row=row, column=3, value=data["License Number"])
  57.             ws.cell(row=row, column=4, value=data["η0,b"])
  58.             ws.cell(row=row, column=5, value=data["a1"])
  59.             ws.cell(row=row, column=6, value=data["a2"])
  60.             ws.cell(row=row, column=7, value=data["a3"])
  61.  
  62.         # Enregistrer le fichier Excel
  63.         wb.save("solarkeymark_results.xlsx")
  64.  
Advertisement
Add Comment
Please, Sign In to add comment