internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: alltheplaces/alltheplaces

Issue:
moneygram
https://locations.moneygram.com/


Discussion:

Resolving patch:
diff --git a/locations/spiders/moneygram.py b/locations/spiders/moneygram.py
new file mode 100644
--- /dev/null
+++ b/locations/spiders/moneygram.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+import json
+import re
+import scrapy
+from locations.items import GeojsonPointItem
+from locations.hours import OpeningHours
+
+
+class MichaelsSpider(scrapy.Spider):
+    download_delay = 0.2
+    name = "moneygram"
+    item_attributes = { 'brand': "Moneygram", 'brand_wikidata': "Q1944412" }
+    allowed_domains = ["locations.moneygram.com"]
+    start_urls = (
+        'http://locations.moneygram.com/',
+    )
+
+    def parse(self, response):
+        urls = response.xpath('//div[@class="statelist_item"]/a/@href').extract()
+
+        for url in urls:
+            yield scrapy.Request(response.urljoin(url), callback=self.parse_state)
+
+    def parse_state(self, response):
+        location_urls = response.xpath('//div[@class="citylist_item"]/a/@href').extract()
+
+        for url in location_urls:
+            yield scrapy.Request(response.urljoin(url), callback=self.parse_city)
+
+    def parse_city(self, response):
+        city_urls = response.xpath('//div[@class="addresslist_item"]/a/@href').extract()
+
+        for url in city_urls:
+            yield scrapy.Request(response.urljoin(url), callback=self.parse_location)
+
+    def parse_location(self, response):
+        data = json.loads(response.xpath('//script[@type="application/ld+json"][2]/text()').extract_first())
+
+        properties = {
+            'ref': data.get('@id'),
+            'addr_full': data.get('address', {}).get('streetAddress'),
+            'city': data.get('address', {}).get('addressLocality'),
+            'state': data.get('address', {}).get('addressRegion'),
+            'postcode': data.get('address', {}).get('postalCode'),
+            'postcode': data.get('name'),
+            'phone': data.get('telephone'),
+            'country': data.get('address', {}).get('addressCountry'),
+            'lat': data.get('geo', {}).get('latitude'),
+            'lon': data.get('geo', {}).get('longitude'),
+            'website': data.get('url'),
+            'extras': {
+                'is_in': data.get('containedIn'),
+            }
+        }
+
+        hours = self.parse_hours(data.get('openingHoursSpecification'))
+
+        if hours:
+            properties['opening_hours'] = hours
+
+        yield GeojsonPointItem(**properties)
+
+    def parse_hours(self, response):
+        opening_hours = OpeningHours()
+        weekdays = response
+
+        for weekday in weekdays:
+            for dow in weekday.get('dayOfWeek', []):
+                opening_hours.add_range(
+                    dow[:2],
+                    open_time=weekday.get('opens'),
+                    close_time=weekday.get('closes'),
+                    time_format='%H:%M',
+                )
+
+        return opening_hours.as_opening_hours()


Test patch:
Repository: alltheplaces/alltheplaces

Issue:
Spider sallybeauty is broken
During the global build at 2021-05-26-14-42-23, spider **sallybeauty** failed with **2712 features** and **5 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/logs/sallybeauty.log) and [the output](https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/output/sallybeauty.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/output/sallybeauty.geojson))


Discussion:

Resolving patch:
diff --git a/locations/spiders/sallybeauty.py b/locations/spiders/sallybeauty.py
--- a/locations/spiders/sallybeauty.py
+++ b/locations/spiders/sallybeauty.py
@@ -58,7 +58,7 @@ def parse_hours(self, hours):
     def parse(self, response):
         jdata = json.loads(response.body_as_unicode())
 
-        for row in jdata.get('stores',[]):
+        for row in jdata.get('stores', []):
 
             properties = {
                 'ref': row["ID"],
@@ -72,8 +72,11 @@ def parse(self, response):
                 'state': row["stateCode"],
             }
 
-            hours = self.parse_hours(row["storeHours"])
-            if hours:
-                properties['opening_hours'] = hours
+            store_hours = row.get("storeHours")
+            if store_hours:
+                hours = self.parse_hours(store_hours)
+
+                if hours:
+                    properties['opening_hours'] = hours
 
             yield GeojsonPointItem(**properties)


Test patch:
Repository: alltheplaces/alltheplaces

Issue:
Spider tmobile_us is broken
During the global build at 2021-05-26-14-42-23, spider **tmobile_us** failed with **7356 features** and **2 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/logs/tmobile_us.log) and [the output](https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/output/tmobile_us.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/output/tmobile_us.geojson))


Discussion:

Resolving patch:
diff --git a/locations/spiders/tmobile_us.py b/locations/spiders/tmobile_us.py
--- a/locations/spiders/tmobile_us.py
+++ b/locations/spiders/tmobile_us.py
@@ -15,12 +15,12 @@
                'Saturday': 'Sa',
                'Sunday': 'Su'}
 
-BASE_URL = 'https://onmyj41p3c.execute-api.us-west-2.amazonaws.com/prod/getStoresByCoordinates?'
+BASE_URL = 'https://onmyj41p3c.execute-api.us-west-2.amazonaws.com/prod/v2.1/getStoresByCoordinates?'
 
 
 class TMobileUSSpider(scrapy.Spider):
     name = "tmobile_us"
-    item_attributes = { 'brand': "T-Mobile" }
+    item_attributes = {'brand': "T-Mobile"}
     allowed_domains = ["www.t-mobile.com"]
     download_delay = 0.2
 
@@ -67,7 +67,7 @@ def parse(self, response):
 
         for store in data:
             properties = {
-                'name': store["name"],
+                'name': store.get("name"),
                 'ref': store["id"],
                 'addr_full': store["location"]["address"]["streetAddress"],
                 'city': store["location"]["address"]["addressLocality"],
@@ -75,8 +75,8 @@ def parse(self, response):
                 'postcode': store["location"]["address"]["postalCode"],
                 'phone': store.get("telephone"),
                 'website': store.get("url") or response.url,
-                'lat': float(store["location"]["latitude"]),
-                'lon': float(store["location"]["longitude"]),
+                'lat': store["location"]["latitude"],
+                'lon': store["location"]["longitude"],
             }
 
             hours = self.parse_hours(store.get("hours", []))


Test patch:
Repository: alltheplaces/alltheplaces

Issue:
Spider tesla is broken
During the global build at 2021-05-26-14-42-23, spider **tesla** failed with **486 features** and **5 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/logs/tesla.log) and [the output](https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/output/tesla.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/output/tesla.geojson))


Discussion:

Resolving patch:
diff --git a/locations/spiders/tesla.py b/locations/spiders/tesla.py
--- a/locations/spiders/tesla.py
+++ b/locations/spiders/tesla.py
@@ -19,7 +19,7 @@ class TeslaSpider(scrapy.Spider):
 
     def parse(self, response):
         # Only scrape stores and service centers
-        country_urls = response.xpath('//a[contains(@href,"stores") or contains(@href,"services")]/@href').extract()
+        country_urls = response.xpath('//a[contains(@href,"stores") or contains(@href,"services") or contains(@href,"superchargers")]/@href').extract()
         for country_url in country_urls:
             yield scrapy.Request(response.urljoin(country_url), callback=self.parse_store_list)
 
@@ -41,6 +41,7 @@ def parse_store(self, response):
             street_address = response.xpath('normalize-space(//span[@class="street-address"]//text())').extract_first()
             city_state_zip = response.xpath('normalize-space(//span[@class="locality"]//text())').extract_first()
 
+            addr_full = ""
             if common_name and street_address and city_state_zip:
                 addr_full = common_name + ' ' + street_address + ', ' + city_state_zip
             elif street_address and not city_state_zip:


Test patch:
Repository: alltheplaces/alltheplaces

Issue:
Spider rei is broken
During the global build at 2021-05-26-14-42-23, spider **rei** failed with **0 features** and **0 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/logs/rei.log) and [the output](https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/output/rei.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/output/rei.geojson))


Discussion:

Resolving patch:
diff --git a/locations/spiders/rei.py b/locations/spiders/rei.py
--- a/locations/spiders/rei.py
+++ b/locations/spiders/rei.py
@@ -33,28 +33,34 @@ def format_days(self, range):
 
     def fix_opening_hours(self, opening_hours):
         return ";".join(map(self.format_days, opening_hours))
-        
 
     def parse_store(self, response):
         json_string = response.xpath('//script[@id="store-schema"]/text()').extract_first()
         store_dict = json.loads(json_string)
-        yield GeojsonPointItem(
-            lat=store_dict["geo"]["latitude"],
-            lon=store_dict["geo"]["longitude"],
-            addr_full=store_dict["address"]["streetAddress"],
-            city=store_dict["address"]["addressLocality"],
-            state=store_dict["address"]["addressRegion"],
-            postcode=store_dict["address"]["postalCode"],
-            country=store_dict["address"]["addressCountry"],
-            opening_hours=self.fix_opening_hours(store_dict["openingHours"]),
-            phone=store_dict["telephone"],
-            website=store_dict["url"],
-            ref=store_dict["url"],
-        )
+
+        properties = {
+            "lat": store_dict["geo"]["latitude"],
+            "lon": store_dict["geo"]["longitude"],
+            "addr_full": store_dict["address"]["streetAddress"],
+            "city": store_dict["address"]["addressLocality"],
+            "state": store_dict["address"]["addressRegion"],
+            "postcode": store_dict["address"]["postalCode"],
+            "country": store_dict["address"]["addressCountry"],
+            "opening_hours": self.fix_opening_hours(store_dict["openingHours"]),
+            "phone": store_dict["telephone"],
+            "website": store_dict["url"],
+            "ref": store_dict["url"],
+        }
+
+        yield GeojsonPointItem(**properties)
 
     def parse(self, response):
-        urls = response.xpath('//a[@class="store-name-link"]/@href').extract()
+        urls = set(response.xpath('//a[contains(@href,"stores") and contains(@href,".html")]/@href').extract())
         for path in urls:
-            yield scrapy.Request(response.urljoin(path), callback=self.parse_store)
+            if path == "/stores/bikeshop.html":
+                continue
 
-        
+            yield scrapy.Request(
+                response.urljoin(path),
+                callback=self.parse_store,
+            )


Test patch:
Repository: alltheplaces/alltheplaces

Issue:
Spider quiznos is broken
During the global build at 2021-05-26-14-42-23, spider **quiznos** failed with **129 features** and **1 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/logs/quiznos.log) and [the output](https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/output/quiznos.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-05-26-14-42-23/output/quiznos.geojson))


Discussion:

Resolving patch:
diff --git a/locations/spiders/quiznos.py b/locations/spiders/quiznos.py
--- a/locations/spiders/quiznos.py
+++ b/locations/spiders/quiznos.py
@@ -2,22 +2,24 @@
 import scrapy
 import json
 import re
-import traceback
 
 from locations.items import GeojsonPointItem
 
-URL = "http://restaurants.quiznos.com"
 
 class QuiznosSpider(scrapy.Spider):
     name = "quiznos"
     item_attributes = { 'brand': "Quizno's", 'brand_wikidata': "Q1936229" }
-    allowed_domains = [URL]
+    allowed_domains = ["https://restaurants.quiznos.com"]
     start_urls = (
-        'http://restaurants.quiznos.com/data/stores.json?callback=storeList',
+        'https://restaurants.quiznos.com/data/stores.json',
     )
 
     def store_hours(self, store_hours):
-        if store_hours == '' or store_hours.lower().find('close') > -1: return ''
+        if store_hours == '' or store_hours == ' - ' or store_hours.lower().find('close') > -1:
+            return ''
+
+        if store_hours == 'Open 24 Hours - Open 24 Hours':
+            return '24/7'
 
         day_groups = []
         this_day_group = None
@@ -67,17 +69,18 @@ def parse(self, response):
         stores = json.loads(re.search(r'storeList\((.*)\)', data).group(1))
 
         for store in stores:
+            properties = {
+                "lat": store.get('latitude'),
+                "lon": store.get('longitude'),
+                "ref": str(store.get('storeid')),
+                "phone": store.get('phone'),
+                "name": store.get('restaurantname'),
+                "opening_hours": self.store_hours(store.get('businesshours')),
+                "addr_full": store.get('address1'),
+                "city": store.get('city'),
+                "state": store.get('statecode'),
+                "postcode": store.get('zipcode'),
+                "website": response.urljoin(store.get('url')),
+            }
 
-            yield GeojsonPointItem(
-                lat=store.get('latitude'),
-                lon=store.get('longitude'),
-                ref=str(store.get('storeid')),
-                phone=store.get('phone'),
-                name=store.get('restaurantname'),
-                opening_hours=self.store_hours(store.get('businesshours')),
-                addr_full=store.get('address1'),
-                city=store.get('city'),
-                state=store.get('statecode'),
-                postcode=store.get('zipcode'),
-                website=URL + store.get('url'),
-            )
+            yield GeojsonPointItem(**properties)


Test patch:
Repository: alltheplaces/alltheplaces

Issue:
Spider tmobile_us is broken
During the global build at 2021-06-30-14-42-26, spider **tmobile_us** failed with **7563 features** and **2 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-06-30-14-42-26/logs/tmobile_us.txt) and [the output](https://data.alltheplaces.xyz/runs/2021-06-30-14-42-26/output/tmobile_us.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-06-30-14-42-26/output/tmobile_us.geojson))


Discussion:

Resolving patch:
diff --git a/locations/spiders/tmobile_us.py b/locations/spiders/tmobile_us.py
--- a/locations/spiders/tmobile_us.py
+++ b/locations/spiders/tmobile_us.py
@@ -15,7 +15,7 @@
                'Saturday': 'Sa',
                'Sunday': 'Su'}
 
-BASE_URL = 'https://onmyj41p3c.execute-api.us-west-2.amazonaws.com/prod/getStoresByCoordinates?'
+BASE_URL = 'https://onmyj41p3c.execute-api.us-west-2.amazonaws.com/prod/v2.1/getStoresByCoordinates?'
 
 
 class TMobileUSSpider(scrapy.Spider):


Test patch:
Repository: alltheplaces/alltheplaces

Issue:
Spider sheetz is broken
During the global build at 2021-06-23-14-42-18, spider **sheetz** failed with **526 features** and **1 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-06-23-14-42-18/logs/sheetz.txt) and [the output](https://data.alltheplaces.xyz/runs/2021-06-23-14-42-18/output/sheetz.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-06-23-14-42-18/output/sheetz.geojson))


Discussion:

Resolving patch:
diff --git a/locations/spiders/sheetz.py b/locations/spiders/sheetz.py
--- a/locations/spiders/sheetz.py
+++ b/locations/spiders/sheetz.py
@@ -22,7 +22,7 @@ def parse(self, response):
                 'state': store['state'],
                 'postcode': store['zip'],
                 'ref': store['storeNumber'],
-                'phone': store['phone'],
+                'phone': store.get('phone'),
                 'website': 'https://orderz.sheetz.com/#/main/location/store/'+store['storeNumber'],
                 'lat': float(store['latitude']),
                 'lon': float(store['longitude']),


Test patch:
Repository: alltheplaces/alltheplaces

Issue:
Spider motel6 is broken
During the global build at 2021-08-18-14-42-26, spider **motel6** failed with **0 features** and **2 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-08-18-14-42-26/logs/motel6.txt) and [the output](https://data.alltheplaces.xyz/runs/2021-08-18-14-42-26/output/motel6.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-08-18-14-42-26/output/motel6.geojson))


Discussion:

Resolving patch:
diff --git a/locations/spiders/motel6.py b/locations/spiders/motel6.py
--- a/locations/spiders/motel6.py
+++ b/locations/spiders/motel6.py
@@ -14,20 +14,21 @@ class Motel6Spider(scrapy.Spider):
     name = "motel6"
     allowed_domains = ["motel6.com"]
     start_urls = (
-        'https://www.motel6.com/var/g6/hotel-summary/ms.infinity.1.json',
+        'https://www.motel6.com/content/g6-cache/property-summary.1.json',
     )
 
     def parse(self, response):
         idata = json.loads(response.body_as_unicode())
-        storeids = idata.keys()
-        URL = 'https://www.motel6.com/var/g6/hotel-information/en/{}.json'
-        for storeid in storeids:
+        url = 'https://www.motel6.com/bin/g6/propertydata.{}.json'
+
+        for storeid in idata.keys():
             try:
                 int(storeid)
             except ValueError:
                 continue
+
             try:
-                yield scrapy.Request(URL.format(storeid), callback=self.parse_hotel)
+                yield scrapy.Request(url.format(storeid), callback=self.parse_hotel)
             except ValueError:
                 continue
 
@@ -35,17 +36,17 @@ def parse_hotel(self, response):
         mdata = json.loads(response.body_as_unicode())
 
         properties = {
-                    'ref': mdata["property_id"],
-                    'name': mdata["name"],
-                    'addr_full': mdata["address"],
-                    'city': mdata["city"],
-                    'postcode': mdata["zip"],
-                    'lat': mdata["latitude"],
-                    'lon': mdata["longitude"],
-                    'phone': mdata["phone"],
-                    'state': mdata["state"],
-                    'website': mdata["microsite_url"],
-                    'brand': brand_lookup[mdata["brand_id"]],
+            'ref': mdata["property_id"],
+            'name': mdata["name"],
+            'addr_full': mdata["address"],
+            'city': mdata["city"],
+            'postcode': mdata["zip"],
+            'lat': mdata["latitude"],
+            'lon': mdata["longitude"],
+            'phone': mdata["phone"],
+            'state': mdata["state"],
+            'website': mdata["microsite_url"],
+            'brand': brand_lookup[mdata["brand_id"]],
         }
 
         yield GeojsonPointItem(**properties)


Test patch:
Repository: alltheplaces/alltheplaces

Issue:
Spider riteaid is broken
During the global build at 2021-08-11-14-42-19, spider **riteaid** failed with **1234 features** and **1 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-08-11-14-42-19/logs/riteaid.txt) and [the output](https://data.alltheplaces.xyz/runs/2021-08-11-14-42-19/output/riteaid.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-08-11-14-42-19/output/riteaid.geojson))


Discussion:
During the global build at 2021-08-18-14-42-26, spider **riteaid** failed with **1234 features** and **1 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-08-18-14-42-26/logs/riteaid.txt) and [the output](https://data.alltheplaces.xyz/runs/2021-08-18-14-42-26/output/riteaid.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-08-18-14-42-26/output/riteaid.geojson))

Resolving patch:
diff --git a/locations/spiders/riteaid.py b/locations/spiders/riteaid.py
--- a/locations/spiders/riteaid.py
+++ b/locations/spiders/riteaid.py
@@ -8,7 +8,7 @@ class RiteAidSpider(scrapy.Spider):
     name = "riteaid"
     allowed_domains = ["riteaid.com"]
     start_urls = (
-        'https://locations.riteaid.com/',
+        'https://www.riteaid.com/locations/',
     )
 
     def store_hours(self, store_hours):
@@ -77,6 +77,9 @@ def parse_state(self, response):
         state_urls = response.xpath('//a[@class="c-directory-list-content-item-link"]/@href').extract()
 
         for url in state_urls:
+            if url == 'https://www.riteaid.com/locations/pa/philadelphia.html':
+                # As of 2021-08-21, This URL 500's reliably, so skipping it.
+                continue
             if len(url.split('/')) == 5:
                 yield scrapy.Request(response.urljoin(url), callback=self.parse_location)
             else:
@@ -118,4 +121,4 @@ def parse_location(self, response):
             'brand': brand.strip(),
         }
 
-        yield GeojsonPointItem(**properties)
\ No newline at end of file
+        yield GeojsonPointItem(**properties)


Test patch:
Repository: alltheplaces/alltheplaces

Issue:
Spider papa_johns is broken
During the global build at 2021-08-18-14-42-26, spider **papa_johns** failed with **3199 features** and **1 errors**.

Here's [the log](https://data.alltheplaces.xyz/runs/2021-08-18-14-42-26/logs/papa_johns.txt) and [the output](https://data.alltheplaces.xyz/runs/2021-08-18-14-42-26/output/papa_johns.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-08-18-14-42-26/output/papa_johns.geojson))


Discussion:

Resolving patch:
diff --git a/locations/spiders/papa_johns.py b/locations/spiders/papa_johns.py
--- a/locations/spiders/papa_johns.py
+++ b/locations/spiders/papa_johns.py
@@ -5,14 +5,20 @@
 from locations.items import GeojsonPointItem
 from locations.hours import OpeningHours
 
-day_map = {'MONDAY': 'Mo', 'TUESDAY': 'Tu', 'WEDNESDAY': 'We', 'THURSDAY': 'Th',
-           'FRIDAY': 'Fr', 'SATURDAY': 'Sa', 'SUNDAY': 'Su'}
+day_map = {
+    'MONDAY': 'Mo',
+    'TUESDAY': 'Tu',
+    'WEDNESDAY': 'We',
+    'THURSDAY': 'Th',
+    'FRIDAY': 'Fr',
+    'SATURDAY': 'Sa',
+    'SUNDAY': 'Su',
+}
 
 
 class PapaJohnsSpider(scrapy.Spider):
-
     name = "papa_johns"
-    item_attributes = { 'brand': "Papa John's Pizza", 'brand_wikidata': "Q2759586" }
+    item_attributes = {'brand': "Papa John's Pizza", 'brand_wikidata': "Q2759586"}
     allowed_domains = ["papajohns.com", ]
 
     start_urls = (
@@ -59,6 +65,8 @@ def parse_store(self, response):
             country = 'US'
         elif '/canada/' in response.url:
             country = 'CA'
+        elif response.url == 'https://locations.papajohns.com/index.html':
+            return
         else:
             country = ''
 
@@ -72,8 +80,8 @@ def parse_store(self, response):
             'state': the_state,
             'opening_hours': opening_hours,
             'country': country,
-            'lat': float(response.xpath('//span[@class="coordinates"]/meta[1]/@content').extract_first()),
-            'lon': float(response.xpath('//span[@class="coordinates"]/meta[2]/@content').extract_first()),
+            'lat': response.xpath('//span[@class="coordinates"]/meta[1]/@content').extract_first(),
+            'lon': response.xpath('//span[@class="coordinates"]/meta[2]/@content').extract_first(),
         }
 
         yield GeojsonPointItem(**props)


Test patch: