Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import scrapy
- from scrapy import Request
- from openpyxl import Workbook
- class SolKeySpider(scrapy.Spider):
- name = "SolKeySpider"
- start_urls = ['https://www.duurzaamloket.nl/SolKey_X014/index.php?SchemeNo=0&Offset=1&SearchText=&PageCnt=448']
- def parse(self, response):
- wb = Workbook()
- ws = wb.active
- ws.append(["Manufacturer", "Model", "License No", "Type", "Collector Area", "Efficiency"])
- for tr in response.xpath("//table[@id='LicTbl']/tbody/tr"):
- link = tr.xpath(".//td[2]/a/@href").get()
- id = link.split("ID=")[1].split("&")[0]
- manufacturer = tr.xpath(".//td[2]/a/text()").get().strip()
- model = tr.xpath(".//td[3]/text()").get().strip()
- license_no = tr.xpath(".//td[4]/text()").get().strip()
- type = tr.xpath(".//td[5]/text()").get().strip()
- collector_area = tr.xpath(".//td[6]/text()").get().strip()
- efficiency = tr.xpath(".//td[7]/text()").get().strip()
- yield Request(
- url=f"https://www.duurzaamloket.nl/SolKey_X014/Spec_Collector.php?ID={id}&SchemeNo=0&Offset=1&SearchText=&PageCnt=448#",
- callback=self.parse_details,
- meta={
- 'wb': wb,
- 'ws': ws,
- 'manufacturer': manufacturer,
- 'model': model,
- 'license_no': license_no,
- 'type': type,
- 'collector_area': collector_area,
- 'efficiency': efficiency
- }
- )
- def parse_details(self, response):
- wb = response.meta['wb']
- ws = response.meta['ws']
- manufacturer = response.meta['manufacturer']
- model = response.meta['model']
- license_no = response.meta['license_no']
- type = response.meta['type']
- collector_area = response.meta['collector_area']
- efficiency = response.meta['efficiency']
- for tr in response.xpath("//table[@class='LicDetails']/tbody/tr"):
- key = tr.xpath(".//td[1]/text()").get().strip()
- value = tr.xpath(".//td[2]/text()").get().strip()
- if key == "Test report number":
- test_report_number = value
- elif key == "Test Standard":
- test_standard = value
- ws.append([manufacturer, model, license_no, type, collector_area, efficiency, test_report_number, test_standard])
- wb.save("solkey_results.xlsx")
Advertisement
Add Comment
Please, Sign In to add comment