BeautifulSoup 正在随机跳过页面数据

BeautifulSoup is randomly skipping page data

以下代码随机skipping/notreturningHTML数据
例如,它可能 return 第 1、3 和 5 页的数据并跳过第 2 和 4 页,或者它可能 return 仅一页的数据,偶尔它 return 的数据所有页面。非常感谢任何帮助。

import urllib
import urllib.request
import re
import threading
import time
from bs4 import BeautifulSoup

append_lock = threading.Lock()

url = 'https://www.vrbo.com/vacation-rentals/usa/florida/central-disney-orlando/lakeland?bedrooms=studio-1'

def make_soup(url):
    thepage = urllib.request.urlopen(url)
    soupdata = BeautifulSoup(thepage,"html.parser")
    return soupdata

def get_page(url):
    try:
        p=1
        while p < 101:
            page = str(p)
            p+=1              
            urlPage = (url+'&page='+page)
            soup = make_soup(urlPage)
            print('soup made')
            ListingData = re.findall(r'"listings":(.*?);',str(soup))
            print(len(str(ListingData)))
            with append_lock: 
                if (len(str(ListingData))) > 10:
                    print(len('OK - '+str(ListingData))) 
                    appendFile = open('listings3.txt','a')
                    appendFile.write ('\n'+str(ListingData))
                    appendFile.close
                    print(urlPage)
                else:
                    break
    except Exception as e:
        print(e)

if __name__=='__main__':
    get_page(url)

你想要的数据在一个有VRBO.indexMaplisings = ..的脚本标签中,你可以使用json.loads来获取数据的字典并解析任何内容你想要的。

from bs4 import BeautifulSoup
from json import loads
import re

url = 'https://www.vrbo.com/vacation-rentals/usa/florida/central-disney-orlando/lakeland'



with requests.Session() as s:
    with open("listings3.txt", "w") as f:
        for page in range(1, 101):
            soup = BeautifulSoup(s.get(url, params={"page":str(page), "bedrooms":"studio-1"}).content)
            script = soup.find("script", text=re.compile("VRBO.indexMaplisings"))
            json_dict = loads(re.search("VRBO.indexMaplisings\s+=\s+(\{.*?\});", script.text).group(1))

            print(json_dict)
            # write whatever you want from the dict to the file i.e
            listings = json_dict["listings"]

页面上也只有一个 listings,所以我们使用 re.search

在您自己的代码中,如果列表为空,您也会中断,因此您永远不会进入下一页,不会跳过 url 只有列表为 "listings":[] 的那些不会被写为len 不是 > 10 并且您在这种情况下结束循环。以此page为例:

In [57]: s = """VRBO.indexMaplisings = {"hitCount":62,"page":4,"pageSize":50,"pageCount":2,"fromRecord":0,"toRecord":0,"hasMapViewport":true,"mapViewport":{"southwest":{"latitude":27.952582,"longitude":-82.0559339},"northeast":{"latitude":28.1722891,"longitude":-81.838785}},"minLatitude":27.952582,"maxLatitude":28.1722891,"minLongitude":-82.0559339,"maxLongitude":-81.838785,"showingPopularityBadge":false,"showingPopularityBadgeOnADL":false,"listings":[]};"""


In [58]: re.findall(r'"listings":(.*?);',s)
Out[58]: ['[]}']
In [59]: len(str(re.findall(r'"listings":(.*?);',s)))
Out[59]: 7 # you break

也不需要锁,因为您是 运行 单线程中的代码。

您的正则表达式也非常脆弱,因为它依赖于以 "listings":whatever; 结尾的 json 数据,但情况并非总是如此。

这将从每个列表中获取您想要的所有数据并不断循环直到没有列表:

import requests
from bs4 import BeautifulSoup
from json import loads, dump
import re
from itertools import count

url = 'https://www.vrbo.com/vacation-rentals/usa/florida/central-disney-orlando/lakeland'
start = "https://www.vrbo.com/vacation-rentals/usa/florida/central-disney-orlando/lakeland?bedrooms=studio-1"
required_items = ('priceRange', 'bedrooms', 'bathrooms', 'sleeps', 'latitude', 'longitude')



def parse_json(soup, required_items):
    script = soup.find("script", text=re.compile("VRBO.indexMaplisings"))
    data = loads(re.search("VRBO.indexMaplisings\s+=\s+(\{.*?\});", script.text).group(1))
    return [{item: dct[item] for item in required_items} for dct in data["listings"]]

with requests.Session() as s:
    all_listings = []
    with open("listings3.txt", "w") as f:
        soup = BeautifulSoup(s.get(url).content, "html.parser")
        all_listings.extend(parse_json(soup, required_items))
        # start at second page 
        for page in count(2):
            soup = BeautifulSoup(s.get(url, params={"page": str(page), "bedrooms": "studio-1"}))
            # get next lists
            listings = parse_json(soup, required_items)
            # if the list returned is empty, there are no more listings so break and dump the list of dicts.
            if not listings:
                dump(all_listings, f)
                break
            all_listings.extend(listings)

使用你问题中的 url 你会在你的文件中看到像这样的口述:

[{"bathrooms": "2", "sleeps": "8", "bedrooms": "3 BR", "longitude": -81.992795, "priceRange": "1", "latitude": 27.985789}, {"bathrooms": "4.5", "sleeps": "9", "bedrooms": "4 BR", "longitude": -82.049959, "priceRange": "1", "latitude": 27.953187}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "3 BR", "longitude": -82.00481415, "priceRange": "3", "latitude": 28.13424492}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.9561009, "priceRange": "", "latitude": 28.030533}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "3 BR", "longitude": -81.956359, "priceRange": "9", "latitude": 28.030599}, {"bathrooms": "2", "sleeps": "10", "bedrooms": "3 BR", "longitude": -81.930784, "priceRange": "0", "latitude": 27.974206}, {"bathrooms": "2.5", "sleeps": "8", "bedrooms": "4 BR", "longitude": -81.926244, "priceRange": "2", "latitude": 27.983273}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.947685, "priceRange": "1", "latitude": 28.038347}, {"bathrooms": "2", "sleeps": "8", "bedrooms": "3 BR", "longitude": -81.881451, "priceRange": "9", "latitude": 27.957731}, {"bathrooms": "1", "sleeps": "5", "bedrooms": "1 BR", "longitude": -81.89933963, "priceRange": "", "latitude": 27.95342536}, {"bathrooms": "2", "sleeps": "8", "bedrooms": "3 BR", "longitude": -82.0014659, "priceRange": "", "latitude": 28.136643}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.9511537, "priceRange": "0", "latitude": 28.0338166}, {"bathrooms": "2", "sleeps": "4", "bedrooms": "2 BR", "longitude": -81.98120765, "priceRange": "", "latitude": 28.01678189}, {"bathrooms": "2", "sleeps": "4", "bedrooms": "2 BR", "longitude": -81.8435977, "priceRange": "", "latitude": 28.0606127}, {"bathrooms": "1.5", "sleeps": "6", "bedrooms": "3 BR", "longitude": -81.950716, "priceRange": "", "latitude": 28.080144}, {"bathrooms": "2.5", "sleeps": "12", "bedrooms": "5 BR", "longitude": -81.9236399, "priceRange": "5", "latitude": 28.1432271}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.99124822, "priceRange": "", "latitude": 28.04222758}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "2 BR", "longitude": -81.944574, "priceRange": "", "latitude": 28.120374}, {"bathrooms": "4", "sleeps": "8", "bedrooms": "4 BR", "longitude": -81.998696, "priceRange": "", "latitude": 28.042091}, {"bathrooms": "3", "sleeps": "6", "bedrooms": "3 BR", "longitude": -81.67315095, "priceRange": "", "latitude": 28.3128085}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "3 BR", "longitude": -81.626667, "priceRange": "", "latitude": 28.134241}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "3 BR", "longitude": -81.693512, "priceRange": "", "latitude": 28.37316}, {"bathrooms": "5.5", "sleeps": "10", "bedrooms": "5 BR", "longitude": -81.55154, "priceRange": "3", "latitude": 28.212491}, {"bathrooms": "3.5", "sleeps": "12", "bedrooms": "5 BR", "longitude": -81.46624088, "priceRange": "", "latitude": 28.2903145}, {"bathrooms": "3", "sleeps": "8", "bedrooms": "3 BR", "longitude": -81.664399, "priceRange": "0", "latitude": 28.269115}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "2 BR", "longitude": -81.595507, "priceRange": "", "latitude": 28.304027}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "3 BR", "longitude": -81.69073486, "priceRange": "7", "latitude": 28.37716103}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "2 BR", "longitude": -81.654253, "priceRange": "8", "latitude": 28.3490513}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "3 BR", "longitude": -81.632586, "priceRange": "", "latitude": 28.125347}, {"bathrooms": "3", "sleeps": "9", "bedrooms": "4 BR", "longitude": -81.66142, "priceRange": "0", "latitude": 28.28653}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "3 BR", "longitude": -81.632741, "priceRange": "2", "latitude": 28.125344}, {"bathrooms": "3", "sleeps": "10", "bedrooms": "4 BR", "longitude": -81.680034, "priceRange": "8", "latitude": 28.317691}, {"bathrooms": "2", "sleeps": "9", "bedrooms": "3 BR", "longitude": -81.463991, "priceRange": "", "latitude": 28.3262611}, {"bathrooms": "4", "sleeps": "10", "bedrooms": "5 BR", "longitude": -81.65518295, "priceRange": "0", "latitude": 28.2622737}, {"bathrooms": "2", "sleeps": "8", "bedrooms": "3 BR", "longitude": -81.6602939, "priceRange": "", "latitude": 28.321667}, {"bathrooms": "3", "sleeps": "8", "bedrooms": "4 BR", "longitude": -81.66710037, "priceRange": "0", "latitude": 28.27817663}, {"bathrooms": "2.5+", "sleeps": "10", "bedrooms": "4 BR", "longitude": -81.6111449, "priceRange": "9", "latitude": 28.331692}, {"bathrooms": "6", "sleeps": "16", "bedrooms": "8 BR", "longitude": -81.6439374, "priceRange": "7", "latitude": 28.311986}, {"bathrooms": "4", "sleeps": "10", "bedrooms": "5 BR", "longitude": -81.562012, "priceRange": "7", "latitude": 28.215793}, {"bathrooms": "3", "sleeps": "10", "bedrooms": "4 BR", "longitude": -81.659387, "priceRange": "4", "latitude": 28.287149}, {"bathrooms": "4", "sleeps": "10", "bedrooms": "5 BR", "longitude": -81.60357349, "priceRange": "9", "latitude": 28.2390289}, {"bathrooms": "2.5", "sleeps": "9", "bedrooms": "4 BR", "longitude": -81.48851, "priceRange": "2", "latitude": 28.33821}, {"bathrooms": "6", "sleeps": "16", "bedrooms": "8 BR", "longitude": -81.64307894, "priceRange": "4", "latitude": 28.31244195}, {"bathrooms": "2", "sleeps": "8", "bedrooms": "4 BR", "longitude": -81.624088, "priceRange": "4", "latitude": 28.33457}, {"bathrooms": "2", "sleeps": "8", "bedrooms": "3 BR", "longitude": -81.6965, "priceRange": "", "latitude": 28.37845}, {"bathrooms": "3", "sleeps": "8", "bedrooms": "3 BR", "longitude": -81.66819593, "priceRange": "", "latitude": 28.3699695}, {"bathrooms": "3", "sleeps": "8", "bedrooms": "4 BR", "longitude": -81.67586517, "priceRange": "4", "latitude": 28.29595757}, {"bathrooms": "3.5", "sleeps": "12", "bedrooms": "6 BR", "longitude": -81.580903, "priceRange": "3", "latitude": 28.248328}, {"bathrooms": "3", "sleeps": "13", "bedrooms": "5 BR", "longitude": -81.67056084, "priceRange": "3", "latitude": 28.30456961}, {"bathrooms": "5.5+", "sleeps": "12", "bedrooms": "6 BR", "longitude": -81.567669, "priceRange": "6", "latitude": 28.215151}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4755988, "priceRange": "3", "latitude": 28.4280396}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5962564, "priceRange": "0", "latitude": 28.3306698}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.489502, "priceRange": "", "latitude": 28.328199}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "3", "latitude": 28.330631}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5963092, "priceRange": "4", "latitude": 28.3307724}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.481789, "priceRange": "", "latitude": 28.338421}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4736379, "priceRange": "9", "latitude": 28.392336}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.51717147, "priceRange": "9", "latitude": 28.3271902}, {"bathrooms": "2", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.55375673, "priceRange": "5", "latitude": 28.36569065}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.46711522, "priceRange": "2", "latitude": 28.45665002}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.52264674, "priceRange": "0", "latitude": 28.37609096}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.6553846, "priceRange": "1", "latitude": 28.3502409}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.610405, "priceRange": "1", "latitude": 28.268601}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5962564, "priceRange": "5", "latitude": 28.3306698}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5963092, "priceRange": "4", "latitude": 28.3307724}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.4755988, "priceRange": "1", "latitude": 28.4280396}, {"bathrooms": "2", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "", "latitude": 28.330631}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4788332, "priceRange": "8", "latitude": 28.4030052}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.489502, "priceRange": "", "latitude": 28.328199}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5963092, "priceRange": "3", "latitude": 28.3307724}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5963092, "priceRange": "0", "latitude": 28.3307724}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.489502, "priceRange": "", "latitude": 28.328199}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5962564, "priceRange": "3", "latitude": 28.3306698}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.4755988, "priceRange": "4", "latitude": 28.4280396}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5962322, "priceRange": "3", "latitude": 28.330707}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "5", "latitude": 28.330631}, {"bathrooms": "1", "sleeps": "2", "bedrooms": "Studio", "longitude": -81.5027632, "priceRange": "", "latitude": 28.3902312}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5000077, "priceRange": "0", "latitude": 28.3871398}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5893128, "priceRange": "0", "latitude": 28.3118658}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5983575, "priceRange": "6", "latitude": 28.33010353}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5959618, "priceRange": "4", "latitude": 28.3271023}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.6034359, "priceRange": "1", "latitude": 28.3172395}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "5", "latitude": 28.330631}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4755988, "priceRange": "5", "latitude": 28.4280396}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.625746, "priceRange": "8", "latitude": 28.353955}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5914525, "priceRange": "4", "latitude": 28.3338545}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.592849, "priceRange": "", "latitude": 28.344393}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5345055, "priceRange": "", "latitude": 28.3413117}, {"bathrooms": "2", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "3", "latitude": 28.330631}, {"bathrooms": "1", "sleeps": "8", "bedrooms": "1 BR", "longitude": -81.626505, "priceRange": "6", "latitude": 28.287416}, {"bathrooms": "2", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.55401422, "priceRange": "5", "latitude": 28.36561513}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.4755988, "priceRange": "0", "latitude": 28.4280396}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5303303, "priceRange": "", "latitude": 28.3346629}, {"bathrooms": "1", "sleeps": "6", "bedrooms": "1 BR", "longitude": -81.5977362, "priceRange": "1", "latitude": 28.3295065}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "9", "latitude": 28.330631}, {"bathrooms": "2", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5390417, "priceRange": "5", "latitude": 28.3599308}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.53830869, "priceRange": "5", "latitude": 28.39356197}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4756422, "priceRange": "4", "latitude": 28.4280449}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.5914525, "priceRange": "0", "latitude": 28.3338545}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4788332, "priceRange": "9", "latitude": 28.4030052}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "0", "latitude": 28.330631}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "", "latitude": 28.330631}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "", "latitude": 28.330631}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "3", "latitude": 28.330631}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4848835, "priceRange": "0", "latitude": 28.3285948}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4863782, "priceRange": "7", "latitude": 28.3267232}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5000077, "priceRange": "9", "latitude": 28.3871398}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4788332, "priceRange": "0", "latitude": 28.4030052}, {"bathrooms": "2", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4756422, "priceRange": "4", "latitude": 28.4280449}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4863782, "priceRange": "5", "latitude": 28.3267232}, {"bathrooms": "1", "sleeps": "2", "bedrooms": "Studio", "longitude": -81.527306, "priceRange": "0", "latitude": 28.403354}, {"bathrooms": "2", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5857833, "priceRange": "7", "latitude": 28.33901813}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5977362, "priceRange": "2", "latitude": 28.3295065}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.533477, "priceRange": "0", "latitude": 28.3741026}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5227433, "priceRange": "0", "latitude": 28.3760532}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.527306, "priceRange": "0", "latitude": 28.403354}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.5977362, "priceRange": "", "latitude": 28.3295065}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.5914525, "priceRange": "", "latitude": 28.3338545}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.4755988, "priceRange": "0", "latitude": 28.4280396}, {"bathrooms": "1", "sleeps": "6", "bedrooms": "1 BR", "longitude": -81.48583984, "priceRange": "4", "latitude": 28.33708}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.490624, "priceRange": "", "latitude": 28.330523}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "Studio", "longitude": -81.497887, "priceRange": "", "latitude": 28.38872}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5916639, "priceRange": "", "latitude": 28.3283343}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.6250875, "priceRange": "", "latitude": 28.3492164}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5977362, "priceRange": "5", "latitude": 28.3295065}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5227433, "priceRange": "0", "latitude": 28.3760532}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5043942, "priceRange": "9", "latitude": 28.3677156}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.760721, "priceRange": "", "latitude": 27.996537}, {"bathrooms": "0", "sleeps": "12", "bedrooms": "Studio", "longitude": -81.468911, "priceRange": "0", "latitude": 28.273777}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5390417, "priceRange": "2", "latitude": 28.3599308}, {"bathrooms": "2", "sleeps": "5", "bedrooms": "1 BR", "longitude": -81.6056994, "priceRange": "2", "latitude": 28.3542586}, {"bathrooms": "2", "sleeps": "6", "bedrooms": "1 BR", "longitude": -81.501109, "priceRange": "5", "latitude": 28.36809872}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5011427, "priceRange": "", "latitude": 28.3894554}, {"bathrooms": "4", "sleeps": "15", "bedrooms": "Studio", "longitude": -81.658196, "priceRange": "0", "latitude": 28.291463}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "4", "latitude": 28.330631}, {"bathrooms": "2", "sleeps": "12", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "2", "latitude": 28.330631}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.532309, "priceRange": "4", "latitude": 28.3378335}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.4692035, "priceRange": "7", "latitude": 28.4059774}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5977362, "priceRange": "6", "latitude": 28.3295065}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.489925, "priceRange": "9", "latitude": 28.38609}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.489925, "priceRange": "5", "latitude": 28.38609}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.52647071, "priceRange": "4", "latitude": 28.397612}, {"bathrooms": "1", "sleeps": "4", "bedrooms": "1 BR", "longitude": -81.5960609, "priceRange": "5", "latitude": 28.330631}, {"bathrooms": "0", "sleeps": "2", "bedrooms": "Studio", "longitude": -81.489925, "priceRange": "7", "latitude": 28.38609}]