This page uses Javascript
to get data as JSON
from address
https://www.rentfaster.ca/api/search.json?proximity_type=location-city&novacancy=0&city_id=1
so you can get all data much easier.
It is simple working example using urllib.request
(instead of scrapy
)
import urllib.request
import json
city_id = 1
url = 'https://www.rentfaster.ca/api/search.json?proximity_type=location-city&novacancy=0&city_id=' + str(city_id)
r = urllib.request.urlopen(url)
data = json.loads(r.read())
print('title:', data['listings'][0]['title'])
print('bedrooms:', data['listings'][0]['bedrooms'])
print('price:', data['listings'][0]['price'])
print('size:', data['listings'][0]['sq_feet'])
To see 10 elements
for x in range(10):
print('title:', data['listings'][x]['title'])
print('bedrooms:', data['listings'][x]['bedrooms'])
print('price:', data['listings'][x]['price'])
print('size:', data['listings'][x]['sq_feet'])
or to see all
for item in data['listings']:
print('title:', item['title'])
print('bedrooms:', item['bedrooms'])
print('price:', item['price'])
print('size:', item['sq_feet'])
To see available keys/fields
print(data.keys())
print(data['listings'][0].keys())
.
dict_keys(['listings', 'query', 'total', 'total2'])
dict_keys(['ref_id', 'userId', 'id', 'title', 'price', 'type', 'sq_feet', 'availability', 'avdate', 'location', 'rented', 'thumb', 'thumb2', 'slide', 'link', 'latitude', 'longitude', 'marker', 'address', 'address_hidden', 'city', 'province', 'intro', 'community', 'quadrant', 'phone', 'email', 'status', 'bedrooms', 'baths', 'cats', 'dogs', 'utilities_included'])