{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Scraping craigslist\n", "## Overview\n", "In this notebook, I'll show you how to make a simple query on Craigslist using some nifty python modules. You can take advantage of all the structure data that exists on webpages to collect interesting datasets." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "import pandas as pd\n", "from bs4 import BeautifulSoup as bs4\n", "%pylab inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we need to figure out how to submit a query to Craigslist. As with many websites, one way you can do this is simply by constructing the proper URL and sending it to Craigslist. Here's a sample URL that is returned after manually typing in a search to Craigslist:\n", "> `http://sfbay.craigslist.org/search/eby/apa?bedrooms=1&pets_cat=1&pets_dog=1&is_furnished=1`\n", "\n", "This is actually two separate things. The first tells craigslist what kind of thing we're searching for:\n", "\n", "> `http://sfbay.craigslist.org/search/eby/apa` says we're searching in the sfbay area (`sfbay`) for apartments (`apa`) in the east bay (`eby`).\n", "\n", "The second part contains the parameters that we pass to the search:\n", "\n", "> `?bedrooms=1&pets_cat=1&pets_dog=1&is_furnished=1` says we want 1+ bedrooms, cats allowed, dogs allowed, and furnished apartments. You can manually change these fields in order to create new queries.\n", "\n", "## Getting a single posting\n", "\n", "So, we'll use this knowledge to send some custom URLs to Craigslist. We'll do this using the `requests` python module, which is really useful for querying websites." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [], "source": [ "import requests" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In internet lingo, we're posting a `get` requests to the website, which simply says that we'd like to get some information from the Craigslist website. With requests, we can easily create a dictionary that specifies parameters in the URL:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [], "source": [ "url_base = 'http://sfbay.craigslist.org/search/eby/apa'\n", "params = dict(bedrooms=1, is_furnished=1)\n", "rsp = requests.get(url_base, params=params)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "# Note that requests automatically created the right URL:\n", "print(rsp.url)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "# We can access the content of the response that Craigslist sent back here:\n", "print(rsp.text[:500])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wow, that's a lot of code. Remember, websites serve HTML documents, and usually your browser will automatically render this into a nice webpage for you. Since we're doing this with python, we get back the raw text. This is really useful, but how can we possibly parse it all?\n", "\n", "For this, we'll turn to another great package, BeautifulSoup:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "# BS4 can quickly parse our text, make sure to tell it that you're giving html\n", "html = bs4(rsp.text, 'html.parser')\n", "\n", "# BS makes it easy to look through a document\n", "print(html.prettify()[:1000])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Beautiful soup lets us quickly search through an HTML document. We can pull out whatever information we want.\n", "\n", "Scanning through this text, we see a common structure repeated `

`. This seems to be the container that has information for a single apartment.\n", "\n", "In BeautifulSoup, we can quickly get all instances of this container:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "# find_all will pull entries that fit your search criteria.\n", "# Note that we have to use brackets to define the `attrs` dictionary\n", "# Because \"class\" is a special word in python, so we need to give a string.\n", "apts = html.find_all('p', attrs={'class': 'row'})\n", "print(len(apts))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's look inside the values of a single apartment listing:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "ename": "IndexError", "evalue": "list index out of range", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# We can see that there's a consistent structure to a listing.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;31m# There is a 'time', a 'name', a 'housing' field with size/n_brs, etc.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mthis_appt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mapts\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m15\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;32mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthis_appt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprettify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mIndexError\u001b[0m: list index out of range" ] } ], "source": [ "# We can see that there's a consistent structure to a listing.\n", "# There is a 'time', a 'name', a 'housing' field with size/n_brs, etc.\n", "this_appt = apts[15]\n", "print(this_appt.prettify())" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "ename": "NameError", "evalue": "name 'this_appt' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# Note that `findAll` returns a list, since there's only one entry in\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m# this HTML, we'll just pull the first item.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0msize\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mthis_appt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfindAll\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mattrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'class'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'housing'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtext\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;32mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msize\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'this_appt' is not defined" ] } ], "source": [ "# So now we'll pull out a couple of things we might be interested in:\n", "# It looks like \"housing\" contains size information. We'll pull that.\n", "# Note that `findAll` returns a list, since there's only one entry in\n", "# this HTML, we'll just pull the first item.\n", "size = this_appt.findAll(attrs={'class': 'housing'})[0].text\n", "print(size)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can query split this into n_bedrooms and the size. However, note that sometimes one of these features might be missing. So we'll use an `if` statement to try and capture this variability:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "ename": "AttributeError", "evalue": "'function' object has no attribute 'strip'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0mn_brs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthis_size\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_brs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 15\u001b[0;31m \u001b[0mthis_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_brs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfind_size_and_brs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msize\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m\u001b[0m in \u001b[0;36mfind_size_and_brs\u001b[0;34m(size)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mfind_size_and_brs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msize\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0msplit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msize\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'/- '\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msplit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m' - '\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msplit\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mn_brs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msplit\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'br'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m''\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mthis_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msplit\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'ft2'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m''\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mAttributeError\u001b[0m: 'function' object has no attribute 'strip'" ] } ], "source": [ "def find_size_and_brs(size):\n", " split = size.strip('/- ').split(' - ')\n", " if len(split) == 2:\n", " n_brs = split[0].replace('br', '')\n", " this_size = split[1].replace('ft2', '')\n", " elif 'br' in split[0]:\n", " # It's the n_bedrooms\n", " n_brs = split[0].replace('br', '')\n", " this_size = np.nan\n", " elif 'ft2' in split[0]:\n", " # It's the size\n", " this_size = split[0].replace('ft2', '')\n", " n_brs = np.nan\n", " return float(this_size), float(n_brs)\n", "this_size, n_brs = find_size_and_brs(size)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "ename": "NameError", "evalue": "name 'this_appt' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Now we'll also pull a few other things:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mthis_time\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mthis_appt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfind\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'time'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'datetime'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mthis_time\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_datetime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthis_time\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mthis_price\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthis_appt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfind\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'span'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'class'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'price'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'$'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mthis_title\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mthis_appt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfind\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'a'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'class'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'hdrlnk'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtext\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'this_appt' is not defined" ] } ], "source": [ "# Now we'll also pull a few other things:\n", "this_time = this_appt.find('time')['datetime']\n", "this_time = pd.to_datetime(this_time)\n", "this_price = float(this_appt.find('span', {'class': 'price'}).text.strip('$'))\n", "this_title = this_appt.find('a', attrs={'class': 'hdrlnk'}).text" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "ename": "NameError", "evalue": "name 'this_size' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Now we've got the n_bedrooms, size, price, and time of listing\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'\\n'\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mthis_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_brs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthis_time\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthis_price\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthis_title\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'this_size' is not defined" ] } ], "source": [ "# Now we've got the n_bedrooms, size, price, and time of listing\n", "print('\\n'.join([str(i) for i in [this_size, n_brs, this_time, this_price, this_title]]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Querying lots of postings\n", "\n", "Cool - so now we've got some useful information about one listing. Now let's loop through many listings across several locations.\n", "\n", "It looks like there is a \"city code\" that distinguishes where you're searching. Here is a **not** up to date list: [link](https://sites.google.com/site/clsiteinfo/city-site-code-sort)\n", "\n", "Within the Bay Area, there are also a lot of sub-regional locations, which we'll define here, then loop through them all.\n", "\n", "Note that the `s` parameter tells Craiglist where to start in terms of the number of results given back. E.g., if s==100, then it starts at the 100th entry." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [], "source": [ "loc_prefixes = ['eby', 'nby', 'sfc', 'sby', 'scz']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll define a few helper functions to handle edge cases and make sure that we don't get any errors." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def find_prices(results):\n", " prices = []\n", " for rw in results:\n", " price = rw.find('span', attrs={'class': 'result-price'})\n", " if price is not None:\n", " price = float(price.text.strip('$'))\n", " else:\n", " price = np.nan\n", " prices.append(price)\n", " return prices\n", "\n", "def find_times(results):\n", " times = []\n", " for rw in apts:\n", " if time is not None:\n", " time = time['datetime']\n", " time = pd.to_datetime(time)\n", " else:\n", " time = np.nan\n", " times.append(time)\n", " return times" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we're ready to go. We'll loop through all of our locations, and pull a number of entries for each one. We'll use a pandas dataframe to store everything, because this will be useful for future analysis.\n", "\n", "**Note** - Craigslist won't take kindly to you querying their server a bunch of times at once. Make sure not to pull too much data too quickly. Another option is to add a delay to each loop iteration. Otherwise your IP might get banned." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "ename": "NameError", "evalue": "name 'txt' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtxt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprettify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'txt' is not defined" ] } ], "source": [ "print(txt.prettify())" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def find_size_and_brs(size):\n", " split = size.strip().split('\\n')\n", " split = [ii.strip().strip(' -') for ii in split]\n", " if len(split) == 2:\n", " n_brs = split[0].replace('br', '')\n", " this_size = split[1].replace('ft2', '')\n", " elif 'br' in split[0]:\n", " # It's the n_bedrooms\n", " n_brs = split[0].replace('br', '')\n", " this_size = np.nan\n", " elif 'ft2' in split[0]:\n", " # It's the size\n", " this_size = split[0].replace('ft2', '')\n", " n_brs = np.nan\n", " return float(this_size), float(n_brs)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "# Now loop through all of this and store the results\n", "results = [] # We'll store the data here\n", "# Careful with this...too many queries == your IP gets banned temporarily\n", "search_indices = np.arange(0, 500, 100)\n", "loc_prefixes = ['eby']\n", "for loc in loc_prefixes:\n", " print loc\n", " for i in search_indices:\n", " url = 'http://sfbay.craigslist.org/search/{0}/apa'.format(loc)\n", " resp = requests.get(url, params={'bedrooms': 1, 's': i})\n", " txt = bs4(resp.text, 'html.parser')\n", " apts = txt.findAll(attrs={'class': \"result-info\"})\n", "\n", " # Find the size of all entries\n", " size_text = [rw.findAll(attrs={'class': 'housing'})[0].text\n", " for rw in apts]\n", " sizes_brs = [find_size_and_brs(stxt) for stxt in size_text]\n", " sizes, n_brs = zip(*sizes_brs) # This unzips into 2 vectors\n", "\n", " # Find the title and link\n", " title = [rw.find('a', attrs={'class': 'hdrlnk'}).text\n", " for rw in apts]\n", " links = [rw.find('a', attrs={'class': 'hdrlnk'})['href']\n", " for rw in apts]\n", "\n", " # Find the time\n", " time = [pd.to_datetime(rw.find('time')['datetime']) for rw in apts]\n", " price = find_prices(apts)\n", "\n", " # We'll create a dataframe to store all the data\n", " data = np.array([time, price, sizes, n_brs, title, links])\n", " col_names = ['time', 'price', 'size', 'brs', 'title', 'link']\n", " df = pd.DataFrame(data.T, columns=col_names)\n", " df = df.set_index('time')\n", "\n", " # Add the location variable to all entries\n", " df['loc'] = loc\n", " results.append(df)\n", " \n", "# Finally, concatenate all the results\n", "results = pd.concat(results, axis=0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def seconds_to_days(seconds):\n", " return seconds / 60. / 60. / 24.\n", "\n", "# We'll make sure that the right columns are represented numerically:\n", "results[['price', 'size', 'brs']] = results[['price', 'size', 'brs']].convert_objects(convert_numeric=True)\n", "results.index.name = 'time'\n", "\n", "# Add the age of each result\n", "now = pd.datetime.utcnow()\n", "results['age'] = [1. / seconds_to_days((now - ii).total_seconds())\n", " for ii in results.index]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "

\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pricesizebrstitlelinklocage
time
2016-11-17 09:12:002450.0850.03.0APARTMENT 3 BR/ 1 BT/eby/apa/5873549022.htmleby2.952374
2016-11-17 09:12:002005.0790.01.0Perfect Cozy One-Bedroom Available Now! Only $.../eby/apa/5880750933.htmleby2.952374
2016-11-17 09:12:001875.0NaN1.0FANTASTIC PLACE - Lovely Yard!/eby/apa/5870868630.htmleby2.952374
2016-11-17 09:11:001525.0650.01.0Large 1 bedroom Washer/Dryer/eby/apa/5865407315.htmleby2.946333
2016-11-17 09:11:006000.0NaN3.03BR/2.5BA Home Panoramic Views (90 Skyway Lane)/eby/apa/5880673685.htmleby2.946333
\n", "
" ], "text/plain": [ " price size brs \\\n", "time \n", "2016-11-17 09:12:00 2450.0 850.0 3.0 \n", "2016-11-17 09:12:00 2005.0 790.0 1.0 \n", "2016-11-17 09:12:00 1875.0 NaN 1.0 \n", "2016-11-17 09:11:00 1525.0 650.0 1.0 \n", "2016-11-17 09:11:00 6000.0 NaN 3.0 \n", "\n", " title \\\n", "time \n", "2016-11-17 09:12:00 APARTMENT 3 BR/ 1 BT \n", "2016-11-17 09:12:00 Perfect Cozy One-Bedroom Available Now! Only $... \n", "2016-11-17 09:12:00 FANTASTIC PLACE - Lovely Yard! \n", "2016-11-17 09:11:00 Large 1 bedroom Washer/Dryer \n", "2016-11-17 09:11:00 3BR/2.5BA Home Panoramic Views (90 Skyway Lane) \n", "\n", " link loc age \n", "time \n", "2016-11-17 09:12:00 /eby/apa/5873549022.html eby 2.952374 \n", "2016-11-17 09:12:00 /eby/apa/5880750933.html eby 2.952374 \n", "2016-11-17 09:12:00 /eby/apa/5870868630.html eby 2.952374 \n", "2016-11-17 09:11:00 /eby/apa/5865407315.html eby 2.946333 \n", "2016-11-17 09:11:00 /eby/apa/5880673685.html eby 2.946333 " ], "text/plain": " price size brs \\\ntime \n2016-11-17 09:12:00 2450.0 850.0 3.0 \n2016-11-17 09:12:00 2005.0 790.0 1.0 \n2016-11-17 09:12:00 1875.0 NaN 1.0 \n2016-11-17 09:11:00 1525.0 650.0 1.0 \n2016-11-17 09:11:00 6000.0 NaN 3.0 \n\n title \\\ntime \n2016-11-17 09:12:00 APARTMENT 3 BR/ 1 BT \n2016-11-17 09:12:00 Perfect Cozy One-Bedroom Available Now! Only $... \n2016-11-17 09:12:00 FANTASTIC PLACE - Lovely Yard! \n2016-11-17 09:11:00 Large 1 bedroom Washer/Dryer \n2016-11-17 09:11:00 3BR/2.5BA Home Panoramic Views (90 Skyway Lane) \n\n link loc age \ntime \n2016-11-17 09:12:00 /eby/apa/5873549022.html eby 2.952374 \n2016-11-17 09:12:00 /eby/apa/5880750933.html eby 2.952374 \n2016-11-17 09:12:00 /eby/apa/5870868630.html eby 2.952374 \n2016-11-17 09:11:00 /eby/apa/5865407315.html eby 2.946333 \n2016-11-17 09:11:00 /eby/apa/5880673685.html eby 2.946333 " }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# And there you have it:\n", "results.head()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": {}, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nf6gAAAAASUVORK5CYII=\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = results.hist('price', bins=np.arange(0, 10000, 100))[0, 0]\n", "ax.set_title('Mother of god.', fontsize=20)\n", "ax.set_xlabel('Price', fontsize=18)\n", "ax.set_ylabel('Count', fontsize=18)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "target_price = 2200.\n", "target_size = 1400.\n", "highlight = pd.DataFrame([[target_price, target_size, 2, 'eby', 'Mine', 'None', 1, results['age'].max()]],\n", " columns=['price', 'size', 'brs', 'loc', 'title', 'link', 'mine', 'age'])\n", "results['mine'] = 0\n", "results = results.append(highlight)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n" ] }, "metadata": { "jupyter-vega": "#b5c5d25b-82b9-48b4-b4c5-5596b3e90154" }, "output_type": "display_data" }, { "data": { "application/javascript": [ "var spec = {\"data\": {\"values\": [{\"loc\": \"eby\", \"title\": \"APARTMENT 3 BR/ 1 BT\", \"price\": 2450.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5873549022.html\", \"age\": 2.9523737188733326, \"size\": 850.0}, {\"loc\": \"eby\", \"title\": \"Perfect Cozy One-Bedroom Available Now! Only $199 Deposit!\", \"price\": 2005.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880750933.html\", \"age\": 2.9523737188733326, \"size\": 790.0}, {\"loc\": \"eby\", \"title\": \"FANTASTIC PLACE - Lovely Yard!\", \"price\": 1875.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5870868630.html\", \"age\": 2.9523737188733326, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Large 1 bedroom Washer/Dryer\", \"price\": 1525.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5865407315.html\", \"age\": 2.9463329716285505, \"size\": 650.0}, {\"loc\": \"eby\", \"title\": \"3BR/2.5BA Home Panoramic Views (90 Skyway Lane)\", \"price\": 6000.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880673685.html\", \"age\": 2.9463329716285505, \"size\": null}, {\"loc\": \"eby\", \"title\": \"1 bed/1 bath Gated Community\", \"price\": 1525.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5868393446.html\", \"age\": 2.9463329716285505, \"size\": 650.0}, {\"loc\": \"eby\", \"title\": \"Online Leasing As Easy As 1-2-3!\", \"price\": 2185.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880747734.html\", \"age\": 2.940316893427064, \"size\": 650.0}, {\"loc\": \"eby\", \"title\": \"Great house in great locality.\\u0a22..everything near around..Nice Offer..\", \"price\": 2055.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880732954.html\", \"age\": 2.940316893427064, \"size\": 1619.0}, {\"loc\": \"eby\", \"title\": \"Fall Special...Move in before the HOLIDAY'S!!\", \"price\": 1795.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880736437.html\", \"age\": 2.940316893427064, \"size\": 725.0}, {\"loc\": \"eby\", \"title\": \"Duplex ONLY FEW BLOCK TO LAKER MERRITT\", \"price\": 2250.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5873527186.html\", \"age\": 2.940316893427064, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Beautiful spacious house at excellent location in Brentwood\", \"price\": 2350.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5835245780.html\", \"age\": 2.940316893427064, \"size\": 2254.0}, {\"loc\": \"eby\", \"title\": \"Charming Apartments in Central Pleasant Hill\", \"price\": 1970.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880733651.html\", \"age\": 2.934325333462626, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Crystal Pool, Fitness Room, Tennis Courts!\", \"price\": 2135.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880746273.html\", \"age\": 2.934325333462626, \"size\": null}, {\"loc\": \"eby\", \"title\": \"PRICE REDUCED-Lrg 1x1 in beautiful LEED-Certified Green Bldg\", \"price\": 2800.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880745508.html\", \"age\": 2.934325333462626, \"size\": 709.0}, {\"loc\": \"eby\", \"title\": \"Vaulted 2x2 Spacious\", \"price\": 1825.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5868390299.html\", \"age\": 2.934325333462626, \"size\": 1000.0}, {\"loc\": \"eby\", \"title\": \"Sunny and Spacious House Fully remodeled\", \"price\": 1995.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880643207.html\", \"age\": 2.934325333462626, \"size\": 1089.0}, {\"loc\": \"eby\", \"title\": \"Quiet and secure building\", \"price\": 900.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880717062.html\", \"age\": 2.928358142155696, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Beautiful 2 bedrooms here at Cornerstone!!\", \"price\": 2260.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880743978.html\", \"age\": 2.928358142155696, \"size\": 982.0}, {\"loc\": \"eby\", \"title\": \"Piedmont home near Beach School. Pet friendly\", \"price\": 6000.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880743264.html\", \"age\": 2.928358142155696, \"size\": 1540.0}, {\"loc\": \"eby\", \"title\": \"Albany House, 3 bdrm, 2.5 bath.\", \"price\": 3500.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5875976357.html\", \"age\": 2.928358142155696, \"size\": 1300.0}, {\"loc\": \"eby\", \"title\": \"Newly Remodeled Duplex!!! Pets Allowed\", \"price\": 2400.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880728188.html\", \"age\": 2.928358142155696, \"size\": 1834.0}, {\"loc\": \"eby\", \"title\": \"1 bedrooms Just $1907 Don't Miss Out!!\", \"price\": 1907.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880742819.html\", \"age\": 2.9224151711409947, \"size\": 671.0}, {\"loc\": \"eby\", \"title\": \"Garden home + garage\", \"price\": 3175.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880742415.html\", \"age\": 2.9224151711409947, \"size\": 1100.0}, {\"loc\": \"eby\", \"title\": \"Gorgeous 2 BR, 1 bath home\", \"price\": 800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880719680.html\", \"age\": 2.9224151711409947, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Large 2 bedroom Apartment\", \"price\": 800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880719145.html\", \"age\": 2.9224151711409947, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Quiet, sunny, remodeled 2nd floor 1 bd/1 ba Apt in the heart of\", \"price\": 2250.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5863321866.html\", \"age\": 2.9164962732552047, \"size\": 650.0}, {\"loc\": \"eby\", \"title\": \"Affordable 2 Bedroom 1 Bathroom\", \"price\": 800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880720133.html\", \"age\": 2.9164962732552047, \"size\": null}, {\"loc\": \"eby\", \"title\": \"$1550 -- Newly Remodeled 1Bd/1Ba -- In Laurel District\", \"price\": 1550.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880739960.html\", \"age\": 2.9164962732552047, \"size\": 550.0}, {\"loc\": \"eby\", \"title\": \"Quiet, safe, beautiful Apt in Upper Castro Valley, 1Bd/1Ba\", \"price\": 1795.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5835093533.html\", \"age\": 2.9164962732552047, \"size\": 535.0}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 2 Bdrm, 1 Bath, 4plex\", \"price\": 1995.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880727614.html\", \"age\": 2.9106013025248263, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Cheery Apartments in Central Pleasant Hill\", \"price\": 1735.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880725913.html\", \"age\": 2.9106013025248263, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Exceptionally Remodeled Great Downtown Location & EZ Commute to SF\", \"price\": 1500.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5871906429.html\", \"age\": 2.9106013025248263, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Holiday Savings! Spacious 2 bed, 2 bath with a view in Dublin\", \"price\": 2695.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880737523.html\", \"age\": 2.9106013025248263, \"size\": 1058.0}, {\"loc\": \"eby\", \"title\": \"Enjoy Point Richmond to its Fullest-1 Bdrm 1 Bath at Point Lodge\", \"price\": 1750.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5839964394.html\", \"age\": 2.904730114154173, \"size\": null}, {\"loc\": \"eby\", \"title\": \"1 Bdrm 1 Bath at Point Lodge\", \"price\": 1699.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5867560557.html\", \"age\": 2.904730114154173, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Home for Rent - Downtown Pleasanton\", \"price\": 2950.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880735972.html\", \"age\": 2.904730114154173, \"size\": 1169.0}, {\"loc\": \"eby\", \"title\": \"Adorable 2 Bedroom Home\", \"price\": 800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880720745.html\", \"age\": 2.893058511127393, \"size\": null}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 1 Bdrm, 1 Bath, 4plex\", \"price\": 1695.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880728011.html\", \"age\": 2.881480328918747, \"size\": null}, {\"loc\": \"eby\", \"title\": \"One Bedroom One Bath NOW AVAILABLE\", \"price\": 1889.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5877531171.html\", \"age\": 2.875725920813064, \"size\": null}, {\"loc\": \"eby\", \"title\": \"The Deal Of The Week! Open House TODAY!\", \"price\": 2105.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880726255.html\", \"age\": 2.875725920813064, \"size\": 964.0}, {\"loc\": \"eby\", \"title\": \"QUIET AWARD WINNING COMMUNITY W YEAR ROUND POOL, HOT TUB & GYM\", \"price\": 1785.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5873305584.html\", \"age\": 2.869994450373114, \"size\": 684.0}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 1 Bdrm, 1 Bath, 4plex\", \"price\": 1695.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880725713.html\", \"age\": 2.869994450373114, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Enjoy The Holidays in Your New Home! Ask About our Fall Special!\", \"price\": 2425.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880724198.html\", \"age\": 2.8642857807238356, \"size\": 1049.0}, {\"loc\": \"eby\", \"title\": \"Wonderful 1 bath, lower level condo avail. now-Premium Properties\", \"price\": 1900.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5867879512.html\", \"age\": 2.8642857807238356, \"size\": 1000.0}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 3 Bdrm, 1 Bath, Duplex\", \"price\": 3295.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880723462.html\", \"age\": 2.8642857807238356, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Updated Piedmont border: large unit; bonus room; walk score 94\", \"price\": 1995.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5869936389.html\", \"age\": 2.8642857807238356, \"size\": null}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 2 Bdrm, 1 Bath, SFR\", \"price\": 3295.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880723052.html\", \"age\": 2.8642857807238356, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Piedmont Border: large updated w/ bonus room; walk to the Ave\", \"price\": 1995.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5869924832.html\", \"age\": 2.8642857807238356, \"size\": null}, {\"loc\": \"eby\", \"title\": \"BEAUTIFUL 1BR AVAILABLE!!\", \"price\": 1907.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880719582.html\", \"age\": 2.8529363017206006, \"size\": 684.0}, {\"loc\": \"eby\", \"title\": \"82 Inverleith Terrace\", \"price\": 11000.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5876696600.html\", \"age\": 2.8529363017206006, \"size\": 3300.0}, {\"loc\": \"eby\", \"title\": \"Reserve Your New Home Today..Waiting List is Open!\", \"price\": 1635.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880718985.html\", \"age\": 2.8472952240079015, \"size\": null}, {\"loc\": \"eby\", \"title\": \"WHEN THE PRICE IS RIGHT WHY WAIT A SECOND LONGER? - CALL IN NOW\", \"price\": 1443.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880700755.html\", \"age\": 2.8472952240079015, \"size\": 644.0}, {\"loc\": \"eby\", \"title\": \"SPECIAL $500 OFF MOVE IN!!! 2nd FLOOR 2X2 WITH LARGE BALCONY\", \"price\": 2100.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5856275465.html\", \"age\": 2.841676410347236, \"size\": 952.0}, {\"loc\": \"eby\", \"title\": \"Come See Your New Home, Quiet 2bd/1.5 bath\", \"price\": 1475.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5876160041.html\", \"age\": 2.8360797291914674, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Enjoy 2 Bedroom 1 Bath close to downtown Pleasanton\", \"price\": 2275.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880715111.html\", \"age\": 2.8360797291914674, \"size\": 865.0}, {\"loc\": \"eby\", \"title\": \"2nd Floor, 1 Bed/1 Bath! AVAILABLE NOW!\", \"price\": 2231.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880714856.html\", \"age\": 2.8360797291914674, \"size\": 710.0}, {\"loc\": \"eby\", \"title\": \"Large 1 Bedroom 2 Blocks from BART\", \"price\": 2750.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880713877.html\", \"age\": 2.8360797291914674, \"size\": 675.0}, {\"loc\": \"eby\", \"title\": \"Charming Downtown Walnut Creek Apartment\", \"price\": 1905.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880713322.html\", \"age\": 2.8305050500277464, \"size\": 665.0}, {\"loc\": \"eby\", \"title\": \"Large Remodeled 2 Bath W/ Balcony! Walk To BART! Open House Sat @ 3P!\", \"price\": 2850.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5873646518.html\", \"age\": 2.8305050500277464, \"size\": 1025.0}, {\"loc\": \"eby\", \"title\": \"2011 Sierra Rd.\", \"price\": 2350.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880711776.html\", \"age\": 2.8249522433673726, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Nice 3/2 with new kitchen!\", \"price\": 2600.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5862804234.html\", \"age\": 2.8194211807357634, \"size\": 1404.0}, {\"loc\": \"eby\", \"title\": \"Great 3/2.5 townhome near 680/4!\", \"price\": 2430.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5862778095.html\", \"age\": 2.8194211807357634, \"size\": 1515.0}, {\"loc\": \"eby\", \"title\": \"Open House Sat @ 3P! Penthouse W/ Parking, W/D! Near Whole Foods!\", \"price\": 3150.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5873645759.html\", \"age\": 2.8194211807357634, \"size\": 1025.0}, {\"loc\": \"eby\", \"title\": \"Nice 3/2 townhome in Walnut Creek!\", \"price\": 2600.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5862830355.html\", \"age\": 2.8194211807357634, \"size\": 1352.0}, {\"loc\": \"eby\", \"title\": \"View Townhome! 3/2.5 in Martinez!\", \"price\": 2240.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5864207668.html\", \"age\": 2.8139117346625495, \"size\": 1338.0}, {\"loc\": \"eby\", \"title\": \"Come On In and Ask About Our November Special Now!!\", \"price\": 1945.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880707678.html\", \"age\": 2.8139117346625495, \"size\": 620.0}, {\"loc\": \"eby\", \"title\": \"Come See Your New Home, Quiet 2bd/1.5 bath\", \"price\": 1475.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880707556.html\", \"age\": 2.8139117346625495, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Open House Sat @ 3P! Penthouse W/ In-Unit! 2 Blocks To Whole Foods!\", \"price\": 3150.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5873636272.html\", \"age\": 2.8084237786717785, \"size\": 1025.0}, {\"loc\": \"eby\", \"title\": \"2 Bdr Lake Merritt 100% remodeled 1/2 Bl from Lake\", \"price\": 2600.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880704271.html\", \"age\": 2.8084237786717785, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Penthouse W/ In-Unit W/D, Parking! Open House Sat @ 3P!\", \"price\": 3150.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5873636973.html\", \"age\": 2.7975118359479008, \"size\": 1025.0}, {\"loc\": \"eby\", \"title\": \"November Rent FREE On This Fantastic 1x1 in a Beautiful Community!\", \"price\": 1515.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880696182.html\", \"age\": 2.7813019916955803, \"size\": 629.0}, {\"loc\": \"eby\", \"title\": \"Spacious townhouse. Safe, quiet and private community. Walk to BART\", \"price\": 2490.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880689726.html\", \"age\": 2.7652789171956016, \"size\": 1500.0}, {\"loc\": \"eby\", \"title\": \"Stokley Properties Presents 5045 Valley Crest Dr #141 in Concord at C\", \"price\": 2100.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880675890.html\", \"age\": 2.7599788399053957, \"size\": 1284.0}, {\"loc\": \"eby\", \"title\": \"!!!!Wonderful remodeled unit in West Oakland near BART available now!!\", \"price\": 1500.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880686438.html\", \"age\": 2.754699040556615, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Tilden Pl. Fairfield\", \"price\": 1700.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5867557971.html\", \"age\": 2.7494394029972367, \"size\": 1208.0}, {\"loc\": \"eby\", \"title\": \"Taft St. Fairfield\", \"price\": 1550.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5850586422.html\", \"age\": 2.7494394029972367, \"size\": 985.0}, {\"loc\": \"eby\", \"title\": \"Spacious Apartment Homes in Downtown Walnut Creek\", \"price\": 2350.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880681240.html\", \"age\": 2.7389801530571773, \"size\": 750.0}, {\"loc\": \"eby\", \"title\": \"Large 4 Br/3ba house in Union City\", \"price\": 3600.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880680226.html\", \"age\": 2.7389801530571773, \"size\": 2647.0}, {\"loc\": \"eby\", \"title\": \"2 bed / 2.5 bath, GATED COMMUNITY Condo, opp. Las Positas CLG\", \"price\": 2450.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5874683454.html\", \"age\": 2.733780312765869, \"size\": 1213.0}, {\"loc\": \"eby\", \"title\": \"Charming & Cozy, Classic Ranch style, Single Family Home\", \"price\": 1117.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880615190.html\", \"age\": 2.7182985812126637, \"size\": 1671.0}, {\"loc\": \"eby\", \"title\": \"Beautiful Modern Lower Unit\", \"price\": 2400.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5872053617.html\", \"age\": 2.7182985812126637, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"Pepper Tree Apartments\", \"price\": 1995.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5844003835.html\", \"age\": 2.7131768972471315, \"size\": 925.0}, {\"loc\": \"eby\", \"title\": \"Gorgeous 4 Bedroom, 3 Bath With Deck and Barbecue\", \"price\": 6800.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880660523.html\", \"age\": 2.708074477033859, \"size\": 2797.0}, {\"loc\": \"eby\", \"title\": \"2B/1B - Walking distance to downtown\", \"price\": 2400.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5865548422.html\", \"age\": 2.7029912120941924, \"size\": 850.0}, {\"loc\": \"eby\", \"title\": \"2B/1B - Walking distance to downtown\", \"price\": 2400.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5865560233.html\", \"age\": 2.7029912120941924, \"size\": 850.0}, {\"loc\": \"eby\", \"title\": \"2B/1B - Walking distance to downtown\", \"price\": 2400.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5865545802.html\", \"age\": 2.7029912120941924, \"size\": 850.0}, {\"loc\": \"eby\", \"title\": \"!!Bright & Sunny 1 bed/1bath unit on Dimond District!!!\", \"price\": 1700.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880664311.html\", \"age\": 2.6928817181782967, \"size\": null}, {\"loc\": \"eby\", \"title\": \"One Month Rent Free Orinda House\", \"price\": 3900.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880657880.html\", \"age\": 2.6778584762313966, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Beautiful, Very Modern townhouse with 4BR & 3BA w/ garage\", \"price\": 2675.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5863986848.html\", \"age\": 2.6630019297940635, \"size\": 1699.0}, {\"loc\": \"eby\", \"title\": \"3Bed 2Bath BEAUTIFUL!\", \"price\": 2495.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880640809.html\", \"age\": 2.6630019297940635, \"size\": 1482.0}, {\"loc\": \"eby\", \"title\": \"Great furnished 2 Br 1ba upper level unit w/ storage and parking\", \"price\": 2200.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5844555809.html\", \"age\": 2.6580863124471157, \"size\": 973.0}, {\"loc\": \"eby\", \"title\": \"Amazing Apartment Walking Distance from Berkeley University\", \"price\": 3095.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880649544.html\", \"age\": 2.653188809073687, \"size\": 675.0}, {\"loc\": \"eby\", \"title\": \"Completely Remodeled 2 Bd/1Ba Blocks to Ashby BART\", \"price\": 2800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880632639.html\", \"age\": 2.6434477452195377, \"size\": null}, {\"loc\": \"eby\", \"title\": \"2.5 Bath Pleasanton Single Family house Top sc\", \"price\": 3450.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880630352.html\", \"age\": 2.6434477452195377, \"size\": 1648.0}, {\"loc\": \"eby\", \"title\": \"1 Br Cabin Alhambra Valley\", \"price\": 2000.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880645111.html\", \"age\": 2.6434477452195377, \"size\": 400.0}, {\"loc\": \"eby\", \"title\": \"Lovely End Unit 2-story Town Home\", \"price\": 2495.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880642759.html\", \"age\": 2.633777947474177, \"size\": 1012.0}, {\"loc\": \"eby\", \"title\": \"Hillside Village Renovated Apartment!!Breath Taking Views 1 Month FREE\", \"price\": 4695.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880642170.html\", \"age\": 2.633777947474177, \"size\": 827.0}, {\"loc\": \"eby\", \"title\": \"Refrigerator, Complimentary Coffee, 24/7 Emergency Maintenance\", \"price\": 1964.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880641118.html\", \"age\": 2.633777947474177, \"size\": 826.0}, {\"loc\": \"eby\", \"title\": \"Newly Remodeled 2bed, 1bath Apartment-Antioch\", \"price\": 1425.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5877089033.html\", \"age\": 2.6289695294386095, \"size\": 800.0}, {\"loc\": \"eby\", \"title\": \"Close to carpool, bus and freeway; with balcony and bonus storage room\", \"price\": 2395.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5847403612.html\", \"age\": 2.6146490447121016, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Condo in Kirkwood Village complex in Concord\", \"price\": 1950.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5858917250.html\", \"age\": 2.6099101564500553, \"size\": 902.0}, {\"loc\": \"eby\", \"title\": \"HOME WALKING DISTANCE TO SCHOOL 3-BR/2.5-BA FREMONT/BIG BACKYARD\", \"price\": 3000.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880614842.html\", \"age\": 2.600483727433511, \"size\": 1574.0}, {\"loc\": \"eby\", \"title\": \"Clean, spacious unit with new carpet & paint - 4 blocks from UCB\", \"price\": 2500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880625750.html\", \"age\": 2.591125145798244, \"size\": 650.0}, {\"loc\": \"eby\", \"title\": \"Beautiful & Spacious 3BR 2BA home in Livermore w/ large backyard\", \"price\": 2995.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5876835023.html\", \"age\": 2.5864710692521204, \"size\": 1227.0}, {\"loc\": \"eby\", \"title\": \"Wonderful 3BR 2BA home w/ two car Garage in Hayward\", \"price\": 3075.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5876845491.html\", \"age\": 2.5864710692521204, \"size\": 1154.0}, {\"loc\": \"eby\", \"title\": \"Large, Sunny One Bed at Temescal Village\", \"price\": 1935.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880622753.html\", \"age\": 2.5864710692521204, \"size\": null}, {\"loc\": \"eby\", \"title\": \"2 Bed 2.5 Bath Townhouse\", \"price\": 2550.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880620307.html\", \"age\": 2.581833681666529, \"size\": 1400.0}, {\"loc\": \"eby\", \"title\": \"2 Bath Updated House in Central Lafyette for Rent\", \"price\": 3995.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880618492.html\", \"age\": 2.572608615592249, \"size\": 1608.0}, {\"loc\": \"eby\", \"title\": \"Ready For You Come See\", \"price\": 2100.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5872207168.html\", \"age\": 2.568020759806348, \"size\": 882.0}, {\"loc\": \"eby\", \"title\": \"Historic Work/Live Loft - Parking, AC, Laundry\", \"price\": 2400.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5873767565.html\", \"age\": 2.568020759806348, \"size\": 1600.0}, {\"loc\": \"eby\", \"title\": \"Gorgeous Furnished 2 bedroom 2 bathroom ~ J.Wavro\", \"price\": 3675.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880613394.html\", \"age\": 2.5588939642198762, \"size\": null}, {\"loc\": \"eby\", \"title\": \"N ORINDA House Grand .5 Acre Sunny Quiet Tranquil PeacefulPrivate 6+mo\", \"price\": 5000.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5873248487.html\", \"age\": 2.5588939642198762, \"size\": 2100.0}, {\"loc\": \"eby\", \"title\": \"2 Bed 2.5 Bath Townhouse\", \"price\": 2550.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5848032495.html\", \"age\": 2.5588939642198762, \"size\": 1400.0}, {\"loc\": \"eby\", \"title\": \"Discovery Bay Home for Rent\", \"price\": 2550.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5864027161.html\", \"age\": 2.554354850879327, \"size\": 1900.0}, {\"loc\": \"eby\", \"title\": \"GORGEOUS 4BR 2.5BA BRENTWOOD HOUSE NEAR PARK, Vasco Rd\", \"price\": 2380.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5875604784.html\", \"age\": 2.54532476385486, \"size\": 2000.0}, {\"loc\": \"eby\", \"title\": \"Remodeled One Bedroom ~ J.Wavro\", \"price\": 2550.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880607560.html\", \"age\": 2.54532476385486, \"size\": null}, {\"loc\": \"eby\", \"title\": \"TASTEFULLY REMODELED HOME-OPEN SATURDAY 1130-1230 PLS RSVP\", \"price\": 3000.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5870895411.html\", \"age\": 2.5408336202891957, \"size\": 1200.0}, {\"loc\": \"eby\", \"title\": \"great family home for rent - San Leandro\", \"price\": 2750.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5869712877.html\", \"age\": 2.5408336202891957, \"size\": 1600.0}, {\"loc\": \"eby\", \"title\": \"CLOSE TO DOWNTOWN/BART/SHOPPING & PARKS/TRAIL\", \"price\": 1850.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5865536200.html\", \"age\": 2.5408336202891957, \"size\": 800.0}, {\"loc\": \"eby\", \"title\": \"SPECTACULAR EXECUTIVE LIVING AT ITS FINEST! EXPANSIVE VIEWS & MORE!\", \"price\": 5000.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5865264752.html\", \"age\": 2.536358297764155, \"size\": 1650.0}, {\"loc\": \"eby\", \"title\": \"Private West Alamo home\", \"price\": 5300.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880603217.html\", \"age\": 2.5318987128270876, \"size\": 2500.0}, {\"loc\": \"eby\", \"title\": \"Apartment available for sub lease next to BART station ($1200 credit)\", \"price\": 2900.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5862357767.html\", \"age\": 2.5318987128270876, \"size\": 1250.0}, {\"loc\": \"eby\", \"title\": \"QUIET PLEASANTON VIEW CONDO-BEST AREA-NEAR BART, MALL, SCHOOLS!\", \"price\": 2690.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5875725379.html\", \"age\": 2.5274547826112386, \"size\": 1250.0}, {\"loc\": \"eby\", \"title\": \"Concord 3/2 Rental near Limeridge/Bart/Downtown $3000\", \"price\": 3000.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5872308874.html\", \"age\": 2.523026424830619, \"size\": 1414.0}, {\"loc\": \"eby\", \"title\": \"Adams Point, Clean, Quiet, Spacious, Lots of Windows, Updated\", \"price\": 1750.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5873048971.html\", \"age\": 2.5186135577749225, \"size\": 675.0}, {\"loc\": \"eby\", \"title\": \"Available December 19! Spacious Upstairs 1 Bedroom\", \"price\": 1225.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880591350.html\", \"age\": 2.5011153824642722, \"size\": 725.0}, {\"loc\": \"eby\", \"title\": \"Single Family House in San Ramon\", \"price\": 3500.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5850749565.html\", \"age\": 2.4967787631787197, \"size\": 1383.0}, {\"loc\": \"eby\", \"title\": \"Available for December 19, 2016 - Pre-lease today!\", \"price\": 1300.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880588315.html\", \"age\": 2.4967787631787197, \"size\": 850.0}, {\"loc\": \"eby\", \"title\": \"Shopping & Schools near\", \"price\": 2395.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5874427074.html\", \"age\": 2.4881504836133326, \"size\": 1450.0}, {\"loc\": \"eby\", \"title\": \"New Remodeled 1 bedroom apartment, one parking, two blocks to BART.\", \"price\": 1180.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5876546682.html\", \"age\": 2.4881504836133326, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Lovely home in great Albany location!\", \"price\": 3475.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880584801.html\", \"age\": 2.483858668233754, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Chic 1 Bedroom Cottage in Berkeley with Great Backyard\", \"price\": 2300.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5871478947.html\", \"age\": 2.475319302530647, \"size\": 550.0}, {\"loc\": \"eby\", \"title\": \"5 bedroom, 2 bath Single Family Home in Warm Springs Area of Fremont\", \"price\": 3500.0, \"brs\": 5.0, \"mine\": 0, \"link\": \"/eby/apa/5857815820.html\", \"age\": 2.4710716002875035, \"size\": 1860.0}, {\"loc\": \"eby\", \"title\": \"Charming Berkeley Bungalow for rent\", \"price\": 3500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880548043.html\", \"age\": 2.4252912178163237, \"size\": 900.0}, {\"loc\": \"eby\", \"title\": \"Spacious and Sunny House\", \"price\": 2105.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5850591553.html\", \"age\": 2.4171491475389923, \"size\": 1122.0}, {\"loc\": \"eby\", \"title\": \"Relaxing Location Spacious floor plan\", \"price\": 1995.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5850258124.html\", \"age\": 2.413098578669299, \"size\": 1089.0}, {\"loc\": \"eby\", \"title\": \"***GORGEOUS 2BR/1.5BA in CONCORD FOR RENT, PRICE DROP! ***\", \"price\": 1900.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5873190677.html\", \"age\": 2.409061562674288, \"size\": 825.0}, {\"loc\": \"eby\", \"title\": \"New House for Rent\", \"price\": 1995.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5859799312.html\", \"age\": 2.409061562674288, \"size\": 1089.0}, {\"loc\": \"eby\", \"title\": \"Two Bedroom - One Bath\", \"price\": 1900.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880544330.html\", \"age\": 2.3851203057949357, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Lafayette House 3 Bedroom Delightful House Available Short-Long Term\", \"price\": 5600.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880532887.html\", \"age\": 2.3811762836381423, \"size\": 2100.0}, {\"loc\": \"eby\", \"title\": \"\\\"Tahoe cottage\\\" in a great Emeryville location!\", \"price\": 1799.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880540275.html\", \"age\": 2.377245283575891, \"size\": 750.0}, {\"loc\": \"eby\", \"title\": \"\\u51fa\\u79df2 rooms1bath private unit for $1700 in a single family house\", \"price\": 1700.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5857572977.html\", \"age\": 2.3694220926113623, \"size\": 480.0}, {\"loc\": \"eby\", \"title\": \"\\u51fa\\u79df2 rooms 1 full bath private in-law unit with private entrance\", \"price\": 1700.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5857593993.html\", \"age\": 2.3694220926113623, \"size\": 480.0}, {\"loc\": \"eby\", \"title\": \"Nice 3br family home Available today\", \"price\": 1500.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5850409629.html\", \"age\": 2.3386375400886052, \"size\": null}, {\"loc\": \"eby\", \"title\": \"nice and quiet one bedroom APT available end of November\", \"price\": 1700.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880522621.html\", \"age\": 2.3348456250683993, \"size\": null}, {\"loc\": \"eby\", \"title\": \"3Br. Nice Family Home Available now\", \"price\": 1750.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5857898830.html\", \"age\": 2.331065986720594, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Gorgeous 3 bedroom home walking distance from park\", \"price\": 2800.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880414410.html\", \"age\": 2.327298565521267, \"size\": 2026.0}, {\"loc\": \"eby\", \"title\": \"Mixed use Updated Victorian House\", \"price\": 6000.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5871586945.html\", \"age\": 2.3235433023306835, \"size\": 2600.0}, {\"loc\": \"eby\", \"title\": \"Elegant 2 Bedroom 2 bath\", \"price\": 3400.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880512629.html\", \"age\": 2.312349875112013, \"size\": 1300.0}, {\"loc\": \"eby\", \"title\": \"14986 Firth Court - Pet Friendly - open Sun 11/20 1-4PM\", \"price\": 2895.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5872503471.html\", \"age\": 2.3012637771791797, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Completely Remodeled Single Level Condo\", \"price\": 2350.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880505922.html\", \"age\": 2.293931912709688, \"size\": 869.0}, {\"loc\": \"eby\", \"title\": \"One Small Bedroom InLaw with forest view\", \"price\": 1300.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5869248856.html\", \"age\": 2.293931912709688, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Updated Single Family Home with In-Law Suite\", \"price\": 4650.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880503451.html\", \"age\": 2.2902834721916236, \"size\": 1600.0}, {\"loc\": \"eby\", \"title\": \"Updated Single Level Condo\", \"price\": 2500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880496659.html\", \"age\": 2.272213978716839, \"size\": 1286.0}, {\"loc\": \"eby\", \"title\": \"Stunning Single Family Home with In-Law Quarters\", \"price\": 5500.0, \"brs\": 5.0, \"mine\": 0, \"link\": \"/eby/apa/5880495736.html\", \"age\": 2.272213978716839, \"size\": 3871.0}, {\"loc\": \"eby\", \"title\": \"Beautiful Single Family Home\", \"price\": 3500.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880486665.html\", \"age\": 2.247390461937159, \"size\": 2331.0}, {\"loc\": \"eby\", \"title\": \"House unit for rent\", \"price\": 1700.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880484147.html\", \"age\": 2.240397340251838, \"size\": 600.0}, {\"loc\": \"eby\", \"title\": \"New House for Rent!\", \"price\": 1660.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880391017.html\", \"age\": 2.240397340251838, \"size\": 1189.0}, {\"loc\": \"eby\", \"title\": \"Spacious and Sunny House!\", \"price\": 2180.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880401880.html\", \"age\": 2.212854708017361, \"size\": 1152.0}, {\"loc\": \"eby\", \"title\": \"Gorgeous Top Floor 1 bdrm Grand ave Open house 1-3 Sat Nov 19\", \"price\": 2700.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880457178.html\", \"age\": 2.1993357898035333, \"size\": 750.0}, {\"loc\": \"eby\", \"title\": \"**6 BEDROOM 3 1/2 BATH**\", \"price\": 7495.0, \"brs\": 6.0, \"mine\": 0, \"link\": \"/eby/apa/5880462614.html\", \"age\": 2.189304506976509, \"size\": 1600.0}, {\"loc\": \"eby\", \"title\": \"New House for Rent!\", \"price\": 1825.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880393412.html\", \"age\": 2.1859810499176553, \"size\": 1554.0}, {\"loc\": \"eby\", \"title\": \"Spacious and Sunny House!\", \"price\": 1565.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880403653.html\", \"age\": 2.182667667861951, \"size\": 959.0}, {\"loc\": \"eby\", \"title\": \"3 bedroom house with lot\", \"price\": 2550.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880416305.html\", \"age\": 2.1727875156545484, \"size\": 1031.0}, {\"loc\": \"eby\", \"title\": \"Furnished apts.2BR-5beds Luxury Bldg UC Berkeley-Available Fall/Spring\", \"price\": 3800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5835386640.html\", \"age\": 2.166250291225994, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Furnished 2/3 Bedroom-4beds beside UC Berkeley -Available Fall/Spring\", \"price\": 4500.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5858978388.html\", \"age\": 2.1597522856457774, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Furnished apts. 2BR- 5Beds Luxury bldg by Bart - Available Fall/Spring\", \"price\": 3800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5870672935.html\", \"age\": 2.153293147040242, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Furnished apts. 2Bedroom w/ 4beds beside UCB - Available Fall/Spring\", \"price\": 3800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5869914860.html\", \"age\": 2.1468725277325538, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Furnished 2 Bedroom - 4 beds beside UC Berkeley -Available Fall/Spring\", \"price\": 3800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5858962113.html\", \"age\": 2.137313072070902, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Furnished 2BR - 5Beds-Luxury bldg. Bart-Available Fall/Spring Semester\", \"price\": 3800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5857047997.html\", \"age\": 2.1309872569034076, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Furnished 3 Bedroom - 5 beds - by UCB and Bart - Available Fall/Spring\", \"price\": 4500.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5857039729.html\", \"age\": 2.1309872569034076, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Spacious and Sunny House!\", \"price\": 2220.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880397335.html\", \"age\": 2.075696229232204, \"size\": 1628.0}, {\"loc\": \"eby\", \"title\": \"Updated and Move-in Ready\", \"price\": 2475.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5871706459.html\", \"age\": 2.0375153827320553, \"size\": 1217.0}, {\"loc\": \"eby\", \"title\": \"3bedroom 2.5 bath house\", \"price\": 2995.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5865239756.html\", \"age\": 2.0090879685570764, \"size\": 2400.0}, {\"loc\": \"eby\", \"title\": \"1 BEDROOM APARTMENT w/ PARKING SPACE\", \"price\": 700.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880300382.html\", \"age\": 1.6906505593803287, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Albany Single Family House 2Bed/1.5Bath\", \"price\": 3500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880310547.html\", \"age\": 1.6886679570010847, \"size\": 1100.0}, {\"loc\": \"eby\", \"title\": \"No Section 8 Housing or smokers.\", \"price\": 1850.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880303140.html\", \"age\": 1.66139188111822, \"size\": 1842.0}, {\"loc\": \"eby\", \"title\": \"34238 Tartarian Way, Union City, CA 94587\", \"price\": 1200.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880302356.html\", \"age\": 1.66139188111822, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Sublet 1BR+1 Bath Furnished apartment 3 blocks from UCB campus & B\", \"price\": 1450.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880296835.html\", \"age\": 1.6112011951591199, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Large beautiful unit Near North Berkeley BART(Hearst&West;)\", \"price\": 2085.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880288869.html\", \"age\": 1.5639541065531366, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Beautiful SUNNY unit Near North Berkeley BART(Hearst&West;) JAN 2017\", \"price\": 1945.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880288768.html\", \"age\": 1.5622573712536474, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Upstairs Condo\", \"price\": 1100.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880288386.html\", \"age\": 1.5605643135438212, \"size\": 640.0}, {\"loc\": \"eby\", \"title\": \"Conveniently Located Three Bedroom\", \"price\": 3000.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5862653948.html\", \"age\": 1.5605643135438212, \"size\": 1582.0}, {\"loc\": \"eby\", \"title\": \"2 cuartos 1 bano/ 2 bedroom Apartment\", \"price\": 1800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5852935155.html\", \"age\": 1.5438334016502633, \"size\": null}, {\"loc\": \"eby\", \"title\": \"High-ceiling single house move-in now! quiet, easy to Brige84, FWY880\", \"price\": 3000.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880274549.html\", \"age\": 1.4788294314181525, \"size\": 1563.0}, {\"loc\": \"eby\", \"title\": \"Charming and spacious 2 bedroom and 2 bath condo available for rent\", \"price\": 2100.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880271718.html\", \"age\": 1.474287307541572, \"size\": 940.0}, {\"loc\": \"eby\", \"title\": \"1-Story Pleasanton SFH 3bd/2ba For Rent\", \"price\": 3300.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880268651.html\", \"age\": 1.471274694197735, \"size\": 1800.0}, {\"loc\": \"eby\", \"title\": \"Pleasanton Single Family House in Hacienda Business Park\", \"price\": 3250.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880262272.html\", \"age\": 1.4360606981230615, \"size\": 1719.0}, {\"loc\": \"eby\", \"title\": \"Remodeled 2BR W/Garage, Near BART\", \"price\": 1800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5872344424.html\", \"age\": 1.4346299927418635, \"size\": 850.0}, {\"loc\": \"eby\", \"title\": \"Remodeled Oakland Hills Home\", \"price\": 3200.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5867443459.html\", \"age\": 1.424694322989262, \"size\": 2000.0}, {\"loc\": \"eby\", \"title\": \"Gorgeous House!!! 6 bedrooms, Walk to BART (9 minutes)\", \"price\": 6400.0, \"brs\": 6.0, \"mine\": 0, \"link\": \"/eby/apa/5861182713.html\", \"age\": 1.3916497317816154, \"size\": 2308.0}, {\"loc\": \"eby\", \"title\": \"**COMING SOON! 3 BD/2 BA VALLEJO HOME FOR RENT-822 SHERIDAN STREET***\", \"price\": 2040.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5873282801.html\", \"age\": 1.3809728953405138, \"size\": 1228.0}, {\"loc\": \"eby\", \"title\": \"Contemporary 4 bdr/3 bath single family house @ Fremont near Milpitas\", \"price\": 4800.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880254263.html\", \"age\": 1.3783292351812906, \"size\": 3440.0}, {\"loc\": \"eby\", \"title\": \"2 Bedroom 4 Rent\", \"price\": 2500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880253952.html\", \"age\": 1.3770111971325545, \"size\": 780.0}, {\"loc\": \"eby\", \"title\": \"Lease takeover available for below Market Rent\", \"price\": 2045.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5866447690.html\", \"age\": 1.3743826689044625, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"2b2b City View Apartment for rent\", \"price\": 2500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880249554.html\", \"age\": 1.3691556029828706, \"size\": null}, {\"loc\": \"eby\", \"title\": \"**COMING SOON! 3 BD/2 BA VALLEJO HOME-119 MELBA DRIVE**\", \"price\": 1850.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880250635.html\", \"age\": 1.3626774174925298, \"size\": 1328.0}, {\"loc\": \"eby\", \"title\": \"$1850-REMODELD-$1850-$1850-2BD-NEAR BART--$1850--$1850-SMALL BUILDING\", \"price\": 1850.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5868702033.html\", \"age\": 1.35753884104237, \"size\": null}, {\"loc\": \"eby\", \"title\": \"SAN PABLO!! $1785--2-BED-SAN PABLO!!-$1785-$1785-SMALL QUIET BUILDING\", \"price\": 1785.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880248325.html\", \"age\": 1.3549840584197341, \"size\": null}, {\"loc\": \"eby\", \"title\": \"2b2b City View Apartment for rent\", \"price\": 2500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5869500237.html\", \"age\": 1.3524388735396877, \"size\": null}, {\"loc\": \"eby\", \"title\": \"**2338 ROBLES DRIVE-COMING SOON! 5 BD/3 BA ANTIOCH HOME**\", \"price\": 2485.0, \"brs\": 5.0, \"mine\": 0, \"link\": \"/eby/apa/5874542570.html\", \"age\": 1.3461175481906358, \"size\": 2522.0}, {\"loc\": \"eby\", \"title\": \"#### Nice 2 Bedroom, 1 Bathroom, 2-Story Condo For Rent\", \"price\": 2200.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880244594.html\", \"age\": 1.3411028756494119, \"size\": 900.0}, {\"loc\": \"eby\", \"title\": \"Fremont Mission School\", \"price\": 2200.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880243730.html\", \"age\": 1.33860952414635, \"size\": 775.0}, {\"loc\": \"eby\", \"title\": \"Beautiful condo by the lake\", \"price\": 2150.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880242138.html\", \"age\": 1.3336505316365403, \"size\": 650.0}, {\"loc\": \"eby\", \"title\": \"/1BA EXCELLENT DOWNTOWN LOCATION\", \"price\": 1645.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880241659.html\", \"age\": 1.3311847881637058, \"size\": null}, {\"loc\": \"eby\", \"title\": \"$1250 Private Bedroom & Bath with Exclusive Entrance\", \"price\": 1250.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880232644.html\", \"age\": 1.3299553323946636, \"size\": 250.0}, {\"loc\": \"eby\", \"title\": \"Holiday Special!!\", \"price\": 1995.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880239876.html\", \"age\": 1.326280553448185, \"size\": 822.0}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 1 Bdrm, 1 Bath, Duplex\", \"price\": 1795.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880237450.html\", \"age\": 1.3250601357466636, \"size\": null}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 1 Bdrm, 1 Bath, 4plex\", \"price\": 1695.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880237411.html\", \"age\": 1.3238419619898156, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Spacious 2 bed /1 bath apartment - very convenient location!\", \"price\": 1800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880231972.html\", \"age\": 1.3177845367584884, \"size\": 750.0}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 2 Bdrm, 1 Bath, 4plex\", \"price\": 1995.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880235864.html\", \"age\": 1.3129783629147451, \"size\": null}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 1 Bdrm, 1 Bath, 4plex\", \"price\": 1695.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880235801.html\", \"age\": 1.3129783629147451, \"size\": null}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 3 Bdrm, 1 Bath, Duplex\", \"price\": 3295.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880235736.html\", \"age\": 1.3129783629147451, \"size\": null}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 2 Bdrm, 1 Bath, SFR\", \"price\": 3295.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880235652.html\", \"age\": 1.3129783629147451, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Charming, spacious Piedmont Home 3br/2.5ba\", \"price\": 5695.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880234543.html\", \"age\": 1.3093966764467306, \"size\": 2200.0}, {\"loc\": \"eby\", \"title\": \"Brand New Executive Suite.\", \"price\": 1700.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880234361.html\", \"age\": 1.3082071194645564, \"size\": 400.0}, {\"loc\": \"eby\", \"title\": \"3b2b very close to UCB and bart station\", \"price\": 5770.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5872224032.html\", \"age\": 1.3082071194645564, \"size\": 1100.0}, {\"loc\": \"eby\", \"title\": \"Upgraded 3Bed-2.5Bath near BART; backyard; pool\", \"price\": 2950.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880230642.html\", \"age\": 1.30347042698513, \"size\": 1452.0}, {\"loc\": \"eby\", \"title\": \"$2500 2Br/1.5Bath Lovely Townhome Downtown Danville\", \"price\": 2500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5873839337.html\", \"age\": 1.3022916085135963, \"size\": 1100.0}, {\"loc\": \"eby\", \"title\": \"Spacious 2 bed /1 bath apartment - very convenient location!\", \"price\": 1725.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5876161603.html\", \"age\": 1.3022916085135963, \"size\": 750.0}, {\"loc\": \"eby\", \"title\": \"Quiet & Marvelous 1 bedroom apartment for rent in alameda\", \"price\": 800.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880225845.html\", \"age\": 1.301114920289704, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Completely remodeled apartment! 1 bed / 1 bath in a gated community\", \"price\": 1895.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5869210870.html\", \"age\": 1.2999403565442968, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"Sunny 1 BR Glenview Apartment (PG&E; included)\", \"price\": 1995.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5855483414.html\", \"age\": 1.298767911529032, \"size\": 600.0}, {\"loc\": \"eby\", \"title\": \"2bd(+1) - 1bath(back unit) one block to Bart, walk to Kaiser, Shopping\", \"price\": 1600.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5861219988.html\", \"age\": 1.2940992045257727, \"size\": null}, {\"loc\": \"eby\", \"title\": \"2bed 2 bath condo in warm springs area with 1 car garage\", \"price\": 2600.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5863527076.html\", \"age\": 1.2929372676580102, \"size\": 936.0}, {\"loc\": \"eby\", \"title\": \"2nd Floor Elmwood Gem Available 1/1/17 : C9\", \"price\": 2495.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5845872200.html\", \"age\": 1.281431637656055, \"size\": 450.0}, {\"loc\": \"eby\", \"title\": \"Gorgeous 1 Bedroom in Gated Community! Avl 12/01/16\", \"price\": 1850.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5849360436.html\", \"age\": 1.281431637656055, \"size\": 644.0}, {\"loc\": \"eby\", \"title\": \"2Bed 2Bath Condo w/ 2Car Garage\", \"price\": 2150.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880223865.html\", \"age\": 1.279155040796688, \"size\": 1137.0}, {\"loc\": \"eby\", \"title\": \"Awesome 2bed Close to Berkely Marina Pets Okay Available Jan 1st\", \"price\": 2800.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880221865.html\", \"age\": 1.2746260288247386, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Spacious 2 bed 1 bath duplex short walk from Broadway Plaza\", \"price\": 2300.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880221038.html\", \"age\": 1.2723735282448936, \"size\": 1300.0}, {\"loc\": \"eby\", \"title\": \"Furnished room 4 rent\", \"price\": 900.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5872648010.html\", \"age\": 1.2690096651095348, \"size\": 120.0}, {\"loc\": \"eby\", \"title\": \"Gorgeous Home in The Bridges, with grand golf/Mount Diablo views\", \"price\": 4950.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880218510.html\", \"age\": 1.2667769537236826, \"size\": 2960.0}, {\"loc\": \"eby\", \"title\": \"Avail now - Central Fremont detached single family home near BART\", \"price\": 3000.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5862659486.html\", \"age\": 1.2623350178667052, \"size\": 1638.0}, {\"loc\": \"eby\", \"title\": \"Azari PM Gorgeous & Spacious 5bdr/4ba Executive Family Home w/Pool/Spa\", \"price\": 2950.0, \"brs\": 5.0, \"mine\": 0, \"link\": \"/eby/apa/5867795143.html\", \"age\": 1.2623350178667052, \"size\": 3107.0}, {\"loc\": \"eby\", \"title\": \"WALK TO CONCORD BART & TODOS SANTOS PLAZA\", \"price\": 1950.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880216895.html\", \"age\": 1.2623350178667052, \"size\": 900.0}, {\"loc\": \"eby\", \"title\": \"Apartment for rent, parking included\", \"price\": 3000.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5870553572.html\", \"age\": 1.2502787834260392, \"size\": 850.0}, {\"loc\": \"eby\", \"title\": \"2.5 Bath Pleasanton Single Family house Top School\", \"price\": 3450.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880211036.html\", \"age\": 1.249194171641884, \"size\": 1648.0}, {\"loc\": \"eby\", \"title\": \"Sequoia Grove\", \"price\": 1645.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880210089.html\", \"age\": 1.2470305836738498, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Two Bedroom at Woodbury\", \"price\": 5200.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880206521.html\", \"age\": 1.2395166902350436, \"size\": 1111.0}, {\"loc\": \"eby\", \"title\": \"Condo for rent low deposit.\", \"price\": 1100.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880205730.html\", \"age\": 1.2384506622725995, \"size\": 900.0}, {\"loc\": \"eby\", \"title\": \"*NOW AVAILABLE! NICE 3BD/1.5BA OAKLAND HOME FOR RENT-6016 HARMON AVE**\", \"price\": 2945.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5841025802.html\", \"age\": 1.2331479093385704, \"size\": 1587.0}, {\"loc\": \"eby\", \"title\": \"Fabulous Location !\", \"price\": 1940.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880193489.html\", \"age\": 1.2331479093385704, \"size\": 820.0}, {\"loc\": \"eby\", \"title\": \"Elegant Home Near the India Rock\", \"price\": 4350.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880200062.html\", \"age\": 1.2331479093385704, \"size\": 2150.0}, {\"loc\": \"eby\", \"title\": \"Spacious 2 Bed 2 Bath in San Leandro\", \"price\": 2200.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880198332.html\", \"age\": 1.2310395013005953, \"size\": 1182.0}, {\"loc\": \"eby\", \"title\": \"Lovely Home Near the Rose Garden\", \"price\": 4350.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880201752.html\", \"age\": 1.2299879986530482, \"size\": 2150.0}, {\"loc\": \"eby\", \"title\": \"+Garden, W/D - Grand Lake/Rose Garden\", \"price\": 2350.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880200468.html\", \"age\": 1.2278903730661967, \"size\": 1100.0}, {\"loc\": \"eby\", \"title\": \"1st Floor w/new Windows, Hardwood Floors\", \"price\": 2600.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5873874150.html\", \"age\": 1.2278903730661967, \"size\": 975.0}, {\"loc\": \"eby\", \"title\": \"Convenience & Affordable Apartment for Rent in San Pablo Ave.\", \"price\": 1480.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880198411.html\", \"age\": 1.2237165127180618, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Newly Remodeled Large 2 Bedroom - Close to Hospital and Shopping - NO\", \"price\": 2095.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880189427.html\", \"age\": 1.2195709319185626, \"size\": 1000.0}, {\"loc\": \"eby\", \"title\": \"New 4-Bedroom Townhouse near Dublin/Pleasanton BART\", \"price\": 3700.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880189381.html\", \"age\": 1.217508656686543, \"size\": 1800.0}, {\"loc\": \"eby\", \"title\": \"You've GOT To See Our 2x1's! Available NOW!\", \"price\": 1499.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5870940218.html\", \"age\": 1.215453344230433, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Newer 4 BD 2.5 Baths House for Rent\", \"price\": 3300.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880193854.html\", \"age\": 1.215453344230433, \"size\": 1800.0}, {\"loc\": \"eby\", \"title\": \"Come Check Out Our 2x1's! Move In Ready!\", \"price\": 1499.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5846803658.html\", \"age\": 1.215453344230433, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Roomy 2x1's! Available NOW! Come See For Yourself!\", \"price\": 1499.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5870935976.html\", \"age\": 1.2144282880331982, \"size\": null}, {\"loc\": \"eby\", \"title\": \"3 Bedroom 2 Bathroom House for Rent - Newly Remodeled\", \"price\": 3600.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880193048.html\", \"age\": 1.2134049593474543, \"size\": null}, {\"loc\": \"eby\", \"title\": \"3 BDrm/1.5 Bath, Carport Parking\", \"price\": 2775.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5858599967.html\", \"age\": 1.2134049593474543, \"size\": 1200.0}, {\"loc\": \"eby\", \"title\": \"Ardenwood Townhome corner unit with gorgeous open view\", \"price\": 3700.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880187325.html\", \"age\": 1.2134049593474543, \"size\": 1969.0}, {\"loc\": \"eby\", \"title\": \"You've GOT To See Our 2x1's! Available NOW!\", \"price\": 1499.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5840484087.html\", \"age\": 1.2134049593474543, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Newly Remodeled Unit - Downtown / Gourmet Ghetto Location\", \"price\": 2895.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5846323108.html\", \"age\": 1.2073010216512174, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Southside / Downtown 2-Bedroom w/ Kit & Bath Remodel\", \"price\": 2995.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5860114496.html\", \"age\": 1.2073010216512174, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Remodeled Southside / Downtown 3bd/2ba\", \"price\": 3995.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5860123343.html\", \"age\": 1.2073010216512174, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Livermore - Brand-New Home near downtown\", \"price\": 3350.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880189233.html\", \"age\": 1.2073010216512174, \"size\": 1747.0}, {\"loc\": \"eby\", \"title\": \"Duplex for rent\", \"price\": 1500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880181285.html\", \"age\": 1.204272024057487, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Newly Remodeled 3 Bedroom 2 Bathroom House for Rent\", \"price\": 3600.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5853895496.html\", \"age\": 1.204272024057487, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Home for Rent\", \"price\": 2380.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880181119.html\", \"age\": 1.204272024057487, \"size\": 1274.0}, {\"loc\": \"eby\", \"title\": \"Room for rent (Utilities Included) near S. Hayward BART/C\", \"price\": 925.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880162194.html\", \"age\": 1.2022611220645507, \"size\": null}, {\"loc\": \"eby\", \"title\": \"$2,700 - 2BR/2BA - Villas @ Dublin Ranch - Available 1/1/17\", \"price\": 2700.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880179639.html\", \"age\": 1.1913201106873677, \"size\": 1347.0}, {\"loc\": \"eby\", \"title\": \"Enjoy your new home in San Leandro! 300.00 deposit upon approval!\", \"price\": 1850.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880168967.html\", \"age\": 1.1893521951474102, \"size\": 750.0}, {\"loc\": \"eby\", \"title\": \"**COMING SOON! 3 BD/1 BA SAN PABLO HOME-1305 CALIFORNIA AVE**\", \"price\": 2135.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880170884.html\", \"age\": 1.1873907703984226, \"size\": 1008.0}, {\"loc\": \"eby\", \"title\": \"Sunny master bedroom with private attached bathroom in 3bed/2bath!\", \"price\": 1900.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880176604.html\", \"age\": 1.1864124820435171, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Newly Listed: 1 Bedrm 1 Bath Apt in Oakland Glen View District\", \"price\": 1750.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880174395.html\", \"age\": 1.183487265243882, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Your new home awaits you in San Leandro! 300.00 deposit upon approval!\", \"price\": 2150.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880168769.html\", \"age\": 1.1815451213488437, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Oakland GlenView: One Bedrm One Bath Plus Apartment\", \"price\": 1700.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5861215247.html\", \"age\": 1.1805764377860344, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Gorgeous high ceiling 2 bedroom unit close to Lake Merritt\", \"price\": 2500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880170573.html\", \"age\": 1.1776798937572341, \"size\": null}, {\"loc\": \"eby\", \"title\": \"One Bedroom, One Bathroom Condo with Upgrated kitchen & bathroom\", \"price\": 1795.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5852893795.html\", \"age\": 1.1747975282816236, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"Amazing renovated modern units in San Leandro!\", \"price\": 2150.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880168396.html\", \"age\": 1.1747975282816236, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Gorgeous, 3 bedroom home\", \"price\": 2950.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880158800.html\", \"age\": 1.1747975282816236, \"size\": 1000.0}, {\"loc\": \"eby\", \"title\": \"Lake Merritt 1bd w/ Deck, Woodsy Yard, and Japanese Hot and Cold Tubs\", \"price\": 2395.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5873072053.html\", \"age\": 1.171929237507572, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Remodeled 3bed - 2 1/2 bath two-story - Available December 3rd\", \"price\": 2900.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880165891.html\", \"age\": 1.1709762504906434, \"size\": 1580.0}, {\"loc\": \"eby\", \"title\": \"**NOW AVAILABLE FOR VIEWING-4201 SALGADO AVE-OAKLEY 3 BD/2 BA*\", \"price\": 2100.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5860414882.html\", \"age\": 1.1700248121104586, \"size\": 1167.0}, {\"loc\": \"eby\", \"title\": \"Remodeled in 2015 - 4 Bedrooms; 2 full Bathrooms; Single-Family Home\", \"price\": 3500.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880163178.html\", \"age\": 1.167179751133336, \"size\": 1882.0}, {\"loc\": \"eby\", \"title\": \"Rockridge Two Bed Two Bath - Available Now!\", \"price\": 2595.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5860384080.html\", \"age\": 1.165290718174396, \"size\": 1247.0}, {\"loc\": \"eby\", \"title\": \"Large 2 bedroom Apartment. Close to UC Berkeley ( 5 blocks from Sather\", \"price\": 3200.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880161719.html\", \"age\": 1.165290718174396, \"size\": 1000.0}, {\"loc\": \"eby\", \"title\": \"1 BEDROOM - CONDO DOWNTOWN OAKLAND\", \"price\": 2360.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5869327931.html\", \"age\": 1.1643484928331327, \"size\": null}, {\"loc\": \"eby\", \"title\": \"1 BEDROOM - NEW RENOVATION - CONDO DOWNTOWN OAKLAND\", \"price\": 2360.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5869328263.html\", \"age\": 1.1643484928331327, \"size\": null}, {\"loc\": \"eby\", \"title\": \"1 BEDROOM / 1 BATH - LUXURIOUS CONDO - MARKETSQUARE - OLD OAKLAND\", \"price\": 2360.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5866446479.html\", \"age\": 1.1643484928331327, \"size\": null}, {\"loc\": \"eby\", \"title\": \"1 BEDROOM - CONDO DOWNTOWN OAKLAND\", \"price\": 2360.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5873247575.html\", \"age\": 1.1643484928331327, \"size\": null}, {\"loc\": \"eby\", \"title\": \"1 BEDROOM / 1 BATH - CONDO DOWNTOWN OAKLAND\", \"price\": 2360.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880158190.html\", \"age\": 1.1605947795488059, \"size\": null}, {\"loc\": \"eby\", \"title\": \"1 BEDROOM / 1 BATH - CONDO DOWNTOWN OAKLAND\", \"price\": 2365.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880158025.html\", \"age\": 1.1605947795488059, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Quiet One Bedroom w/ Bay View\", \"price\": 1750.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880157670.html\", \"age\": 1.1605947795488059, \"size\": 650.0}, {\"loc\": \"eby\", \"title\": \"Chef's Dream Kitchen - Modern Designer House...\", \"price\": 1945.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880157479.html\", \"age\": 1.1596601299010185, \"size\": 1020.0}, {\"loc\": \"eby\", \"title\": \"Furnished In-Law Studio Inside Contra Costa Country Club\", \"price\": 2100.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5866416090.html\", \"age\": 1.158726984425131, \"size\": 400.0}, {\"loc\": \"eby\", \"title\": \"Upgraded 1 Bedroom Apt in Lafayette! Walking Distance to Downtown!\", \"price\": 1750.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880155400.html\", \"age\": 1.1568651914880206, \"size\": 800.0}, {\"loc\": \"eby\", \"title\": \"Great space on Piedmont Border with Balcony and Bonus Storage Room\", \"price\": 2395.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5841744329.html\", \"age\": 1.1559365368053824, \"size\": null}, {\"loc\": \"eby\", \"title\": \"remodeled kitchen, dual-pained windows, and laminate\", \"price\": 1050.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880142680.html\", \"age\": 1.1513155378623032, \"size\": 969.0}, {\"loc\": \"eby\", \"title\": \"Just in Time for the Holidays!\", \"price\": 1800.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880142656.html\", \"age\": 1.1513155378623032, \"size\": 1670.0}, {\"loc\": \"eby\", \"title\": \"Spacious Penthouse with a private deck\", \"price\": 3000.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880150779.html\", \"age\": 1.1513155378623032, \"size\": null}, {\"loc\": \"eby\", \"title\": \"bedroom 1.5 bath has remodeled kitchen, dual-pained\", \"price\": 1050.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880142348.html\", \"age\": 1.1513155378623032, \"size\": 969.0}, {\"loc\": \"eby\", \"title\": \"has two closets -- including one walk-in. Spacious enclosed\", \"price\": 1050.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880143825.html\", \"age\": 1.1503957680550443, \"size\": 969.0}, {\"loc\": \"eby\", \"title\": \"two closets -- including one walk-in. Spacious enclosed\", \"price\": 1050.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880143477.html\", \"age\": 1.1494774666570464, \"size\": 969.0}, {\"loc\": \"eby\", \"title\": \"Delightful Rockridge Townhouse:\", \"price\": 3380.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880149166.html\", \"age\": 1.1494774666570464, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Delightful Rockridge Townhouse:\", \"price\": 3380.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880148645.html\", \"age\": 1.1485606301546492, \"size\": null}, {\"loc\": \"eby\", \"title\": \"bedroom has two closets -- including one walk-in.\", \"price\": 1050.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880142038.html\", \"age\": 1.146731337837975, \"size\": 969.0}, {\"loc\": \"eby\", \"title\": \"Bright & spacious duplex with sleek, clean upgrades\", \"price\": 1795.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880145109.html\", \"age\": 1.1439982988801436, \"size\": 1086.0}, {\"loc\": \"eby\", \"title\": \"Spacious 1 Bedroom, All Utilities Included\", \"price\": 2100.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880145077.html\", \"age\": 1.1439982988801436, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"location. Close to downtown Martinez and the Marina. Walking d\", \"price\": 1250.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880132787.html\", \"age\": 1.1430901785886352, \"size\": 2737.0}, {\"loc\": \"eby\", \"title\": \"New Remodeled Apartment with Great Sunlights and Balcony\", \"price\": 2350.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880134014.html\", \"age\": 1.1430901785886352, \"size\": 660.0}, {\"loc\": \"eby\", \"title\": \"Close to downtown Martinez and the Marina. Walking\", \"price\": 1250.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880133493.html\", \"age\": 1.1421834989082544, \"size\": 2737.0}, {\"loc\": \"eby\", \"title\": \"Pt. Rich. Amazing Gem with Bay Views, early/mid Dec.\", \"price\": 3500.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880142652.html\", \"age\": 1.141278256413714, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Great 3BR/3+BA plus loft, Single Family Home - San Ramon\", \"price\": 3600.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5871619655.html\", \"age\": 1.1403744476905757, \"size\": 1962.0}, {\"loc\": \"eby\", \"title\": \"Short commute to Pleasant Hill, Concord and Walnut Creek, etc. This un\", \"price\": 1250.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880132434.html\", \"age\": 1.1385711179547504, \"size\": 2737.0}, {\"loc\": \"eby\", \"title\": \"a galley style Kitchen and wood panel Living Room.\", \"price\": 1250.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880133190.html\", \"age\": 1.1376715901670549, \"size\": 2737.0}, {\"loc\": \"eby\", \"title\": \"Huge Master Bedroom with retreat, 2 cars\", \"price\": 1350.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880129475.html\", \"age\": 1.136773482600659, \"size\": 1984.0}, {\"loc\": \"eby\", \"title\": \"Renovated El Cerrito House. Close to Bart/shopping. Avail 1/7/17\", \"price\": 2745.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880137885.html\", \"age\": 1.135876791894737, \"size\": null}, {\"loc\": \"eby\", \"title\": \"\\u25ba\\u25baPrice Drop! 2x2 Dual Master Suite! Available Now!\", \"price\": 1745.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880109427.html\", \"age\": 1.135876791894737, \"size\": 998.0}, {\"loc\": \"eby\", \"title\": \"4 bedroom 2.5 bathroom. family room All bedroom upstairs.\", \"price\": 1500.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880127290.html\", \"age\": 1.1349815146990592, \"size\": 2182.0}, {\"loc\": \"eby\", \"title\": \"New Remodeled Apartment with Great Sunlights and Balcony\", \"price\": 2350.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5877109544.html\", \"age\": 1.1340876476739492, \"size\": 660.0}, {\"loc\": \"eby\", \"title\": \"lots of cabinets. All bedroom upstairs family room and f\", \"price\": 1500.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880126535.html\", \"age\": 1.1331951874902435, \"size\": 2182.0}, {\"loc\": \"eby\", \"title\": \"~*~* SPECIALS at Hidden Creek! $250 deposit, $50 OFF/mo Renovated 2x1\", \"price\": 1645.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880117349.html\", \"age\": 1.1323041308292496, \"size\": 886.0}, {\"loc\": \"eby\", \"title\": \"w/Breakfast Bar, Huge Master Bedroom with retreat\", \"price\": 1350.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880129131.html\", \"age\": 1.1314144743827055, \"size\": 1984.0}, {\"loc\": \"eby\", \"title\": \"Stunning Lafayette Home Long or Short Term avail now take a look & see\", \"price\": 4290.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5873570512.html\", \"age\": 1.1314144743827055, \"size\": 2400.0}, {\"loc\": \"eby\", \"title\": \"ORINDA HOUSE Enchanting Bright Delightful Neighborhood\", \"price\": 5700.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5873569459.html\", \"age\": 1.1314144743827055, \"size\": 2300.0}, {\"loc\": \"eby\", \"title\": \"aintained home 4 bedroom 2.5 bathroom\", \"price\": 1500.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880126172.html\", \"age\": 1.1314144743827055, \"size\": 2182.0}, {\"loc\": \"eby\", \"title\": \"walk to Lake Merritt ~ hardwood floors ~ pet friendly\", \"price\": 2195.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5869191568.html\", \"age\": 1.1278697849385433, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Luxury apartment steps from Lake Merritt ~ pet friendly ~ parking incl\", \"price\": 3895.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5869194124.html\", \"age\": 1.1278697849385433, \"size\": 1560.0}, {\"loc\": \"eby\", \"title\": \"Bright 1Br, BLONDE HARDWOOD, Great Berkeley location\", \"price\": 1795.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880123937.html\", \"age\": 1.119974873564892, \"size\": 675.0}, {\"loc\": \"eby\", \"title\": \"**3445 SERPENTINE DR-COMING SOON! 4BD/2BA ANTIOCH HOME FOR RENT**\", \"price\": 2075.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5871716854.html\", \"age\": 1.1139103864056965, \"size\": 1469.0}, {\"loc\": \"eby\", \"title\": \"Beautiful House For Rent $2700\", \"price\": 2700.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5876983274.html\", \"age\": 1.1139103864056965, \"size\": 2866.0}, {\"loc\": \"eby\", \"title\": \"Available today!New paint wood floors! 2BR/1.5BA, inside laundry\", \"price\": 1645.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880105187.html\", \"age\": 1.1130493882986074, \"size\": 1000.0}, {\"loc\": \"eby\", \"title\": \"Spacious with tall ceilings - 800ft\", \"price\": 2295.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880115067.html\", \"age\": 1.1104743616133679, \"size\": null}, {\"loc\": \"eby\", \"title\": \"4 BEDROOM HOUSE WALK TO N. CONCORD BART\", \"price\": 2400.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5836748967.html\", \"age\": 1.1104743616133679, \"size\": 1508.0}, {\"loc\": \"eby\", \"title\": \"Ardenwood Single Family Home, Fremont\", \"price\": 3800.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880094617.html\", \"age\": 1.107911222015468, \"size\": 1717.0}, {\"loc\": \"eby\", \"title\": \"5bedroom 3 baths 3 car garage Available soon Near Costco\", \"price\": 2600.0, \"brs\": 5.0, \"mine\": 0, \"link\": \"/eby/apa/5880110415.html\", \"age\": 1.1062090256357504, \"size\": 2516.0}, {\"loc\": \"eby\", \"title\": \"GOLD COAST Stunning 1br, frml din, hrdwd, cat OK,\", \"price\": 1995.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880093354.html\", \"age\": 1.0936073761565195, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Prime Walnut Creek location! Spacious plan w/ balcony, Large closets\", \"price\": 1875.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5849321911.html\", \"age\": 1.0936073761565195, \"size\": 634.0}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 1 Bdrm, 1 Bath, Duplex\", \"price\": 1795.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880085452.html\", \"age\": 1.0919488160459458, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Beautiful Contemporary 4 bed/3 baths Single Family Home with Pool\", \"price\": 4800.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5880092070.html\", \"age\": 1.0886467423753095, \"size\": 3440.0}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 1 Bdrm, 1 Bath, 4plex\", \"price\": 1695.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880081241.html\", \"age\": 1.087824342079281, \"size\": null}, {\"loc\": \"eby\", \"title\": \"For Rent - Remodeled Brookvale home\", \"price\": 3600.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880086625.html\", \"age\": 1.083730908528721, \"size\": 1700.0}, {\"loc\": \"eby\", \"title\": \"Fremont 3 Bd/2Ba in Warms Springs District\", \"price\": 3000.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880086063.html\", \"age\": 1.082915915855561, \"size\": 1200.0}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 2 Bdrm, 1 Bath, 4plex\", \"price\": 1995.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880080900.html\", \"age\": 1.0780515857707924, \"size\": null}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 1 Bdrm, 1 Bath, 4plex\", \"price\": 1695.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880080676.html\", \"age\": 1.0780515857707924, \"size\": null}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 3 Bdrm, 1 Bath, Duplex\", \"price\": 3295.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880079435.html\", \"age\": 1.0772451095217759, \"size\": null}, {\"loc\": \"eby\", \"title\": \"\\\"FULLY REMODELED\\\" 2 Bdrm, 1 Bath, SFR\", \"price\": 3295.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880079294.html\", \"age\": 1.0772451095217759, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Beautiful Designers Loft & Studio ( Live/Work)\", \"price\": 1500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5868581536.html\", \"age\": 1.0724314780010513, \"size\": 1300.0}, {\"loc\": \"eby\", \"title\": \"Executive-style Townhouse, Quiet & Carefree Living , Great Location\", \"price\": 2595.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880072394.html\", \"age\": 1.0708364797390182, \"size\": 1400.0}, {\"loc\": \"eby\", \"title\": \"SPECIAL: LIVE AT THE TOP OF THE PROPERTY, DRAMATIC VAULTED CEILING!\", \"price\": 2405.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879994041.html\", \"age\": 1.0700407584341993, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"NICE/Sunny remodel nr school shops\", \"price\": 2050.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5871736146.html\", \"age\": 1.0692462188265979, \"size\": null}, {\"loc\": \"eby\", \"title\": \"2Br/1Br Condo In Union City\", \"price\": 2000.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880069795.html\", \"age\": 1.0692462188265979, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"\\\"Location, Location, Location\\\"\", \"price\": 3400.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5851888595.html\", \"age\": 1.0676606741892831, \"size\": 1488.0}, {\"loc\": \"eby\", \"title\": \"Largest 1 Bedroom Available Tomorrow!!!\", \"price\": 2399.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880067773.html\", \"age\": 1.0668696639221613, \"size\": 925.0}, {\"loc\": \"eby\", \"title\": \"NICE/Sunny remodel nr school shops\", \"price\": 2050.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5871739584.html\", \"age\": 1.0660798248773828, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Gorgeous Gaia Two Bedroom\", \"price\": 3423.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880064817.html\", \"age\": 1.064503650065101, \"size\": 626.0}, {\"loc\": \"eby\", \"title\": \"4 month rental available\", \"price\": 2200.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5869065531.html\", \"age\": 1.064503650065101, \"size\": 1192.0}, {\"loc\": \"eby\", \"title\": \"Super Spacious 2X1!!!\", \"price\": 3828.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880054604.html\", \"age\": 1.0637173091219083, \"size\": 898.0}, {\"loc\": \"eby\", \"title\": \"Adorable Two Bedroom\", \"price\": 3342.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880060465.html\", \"age\": 1.0613652412502037, \"size\": 664.0}, {\"loc\": \"eby\", \"title\": \"Large one bedroom and large living room two patios at 2028 Dwight way\", \"price\": 2495.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880060450.html\", \"age\": 1.0613652412502037, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Perfect 3 bed/ 3 bath\", \"price\": 3200.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880046750.html\", \"age\": 1.0582452835815637, \"size\": 1400.0}, {\"loc\": \"eby\", \"title\": \"BBQ Grills, Courtyards, Patios/balconies, ATM, Shopping!\", \"price\": 3072.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880055725.html\", \"age\": 1.0574681581018075, \"size\": 714.0}, {\"loc\": \"eby\", \"title\": \"2428 Milvia #1 is a remodeled two bedroom apartment with one bathroom,\", \"price\": 2495.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880047219.html\", \"age\": 1.0551436148207711, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Beautiful view by the beach in Alameda\", \"price\": 1800.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5863487978.html\", \"age\": 1.0543710364410819, \"size\": 580.0}, {\"loc\": \"eby\", \"title\": \"Ready for a price reduction? Ready to live in the Lafayette Hills?\", \"price\": 2461.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879998710.html\", \"age\": 1.0535995886006466, \"size\": 1050.0}, {\"loc\": \"eby\", \"title\": \"Luxury & Convenience all at Parker! BRAND NEW - 6 WEEKS FREE RENT!\", \"price\": 2865.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880036980.html\", \"age\": 1.0535995886006466, \"size\": 706.0}, {\"loc\": \"eby\", \"title\": \"You'll LOVE Your New Apartment Home!\", \"price\": 2534.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880049030.html\", \"age\": 1.052060074625912, \"size\": 535.0}, {\"loc\": \"eby\", \"title\": \"Ideal One Bedroom!\", \"price\": 2750.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880046790.html\", \"age\": 1.0505250531456218, \"size\": 415.0}, {\"loc\": \"eby\", \"title\": \"6 WEEKS FREE!! Move-in ready 2BR Flats in Downtown Berkeley!\", \"price\": 3631.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880037739.html\", \"age\": 1.0497592209502198, \"size\": 958.0}, {\"loc\": \"eby\", \"title\": \"Thanksgiving in your new Pleasant Hill Home!\", \"price\": 3500.0, \"brs\": 4.0, \"mine\": 0, \"link\": \"/eby/apa/5844750610.html\", \"age\": 1.0482309014301348, \"size\": 1826.0}, {\"loc\": \"eby\", \"title\": \"Sunny 2 bedroom, 1 bath in West Berkeley\", \"price\": 2300.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5858686114.html\", \"age\": 1.047468409239276, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"Must See! Great Walnut Creek location, Lrg private deck, Spacious apt\", \"price\": 1925.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5844200913.html\", \"age\": 1.045946747883506, \"size\": 660.0}, {\"loc\": \"eby\", \"title\": \"Class on the South side of campus? Live HERE!!!\", \"price\": 3261.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880040529.html\", \"age\": 1.0451875738947258, \"size\": 707.0}, {\"loc\": \"eby\", \"title\": \"3 bedroom / 2.5 bath Townhouse for rent\", \"price\": 2600.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5869062090.html\", \"age\": 1.044429501161099, \"size\": 1400.0}, {\"loc\": \"eby\", \"title\": \"Ivy Hill - 2 bedroom/1 bath + office + garage\", \"price\": 2750.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880039505.html\", \"age\": 1.044429501161099, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Location, Community, Quality Living. It Starts Here!\", \"price\": 2580.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5877718945.html\", \"age\": 1.0436725272881466, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"Live the Oakland Lifestyle!\", \"price\": 2580.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5877726435.html\", \"age\": 1.0436725272881466, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"Proper Design. Smartly Priced. Ready for Move-In!\", \"price\": 2980.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5877732325.html\", \"age\": 1.0429166498883276, \"size\": 800.0}, {\"loc\": \"eby\", \"title\": \"Modern Amenities. Beautiful Apartment!\", \"price\": 1683.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5876891960.html\", \"age\": 1.0429166498883276, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Urban Energy at a Great Location!\", \"price\": 1488.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5870482800.html\", \"age\": 1.0429166498883276, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Head-turning Style, Extraordinary Location\", \"price\": 1783.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5870486327.html\", \"age\": 1.0429166498883276, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Lovely Apartment Waiting for You to Make it Home!\", \"price\": 1988.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5870466708.html\", \"age\": 1.0429166498883276, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Lovely Apartments Waiting for You to Make it Home!\", \"price\": 1633.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5870436289.html\", \"age\": 1.0429166498883276, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Urban Energy at a Great Location!\", \"price\": 1833.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5870383447.html\", \"age\": 1.0429166498883276, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Right Around the Corner, Near Everywhere You Want to Be!\", \"price\": 1583.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5840080515.html\", \"age\": 1.0429166498883276, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Love Where You Live! Head-turning Style, Extraordinary Location\", \"price\": 1888.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5848097410.html\", \"age\": 1.0429166498883276, \"size\": 1.0}, {\"loc\": \"eby\", \"title\": \"Wonderful Apartment You've Been Waiting For!\", \"price\": 1888.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5848095009.html\", \"age\": 1.0429166498883276, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Move in Special - $500 off Second month's Rent!\", \"price\": 1583.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5876848133.html\", \"age\": 1.0429166498883276, \"size\": null}, {\"loc\": \"eby\", \"title\": \"SAVE $500 on your first month's rent\", \"price\": 2375.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880026354.html\", \"age\": 1.041408174992453, \"size\": 870.0}, {\"loc\": \"eby\", \"title\": \"Make Your Move! Bright 3BR, 3BA, Custom Finishes, Available Now!\", \"price\": 4515.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880035042.html\", \"age\": 1.041408174992453, \"size\": 1260.0}, {\"loc\": \"eby\", \"title\": \"Head-turning Style, Extraordinary Location!\", \"price\": 2980.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880034388.html\", \"age\": 1.0406555727557731, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"1 Bed, 1 Bath Top Floor Unit with Eat-In Kitchen and Parking included\", \"price\": 1450.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5835159203.html\", \"age\": 1.0406555727557731, \"size\": 520.0}, {\"loc\": \"eby\", \"title\": \"The Keys To Your New Home Await You! The Perks are Endless! Stop By...\", \"price\": 2746.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880033666.html\", \"age\": 1.0406555727557731, \"size\": 710.0}, {\"loc\": \"eby\", \"title\": \"Livermore Condo\", \"price\": 2900.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5872010716.html\", \"age\": 1.039904057510926, \"size\": 1744.0}, {\"loc\": \"eby\", \"title\": \"2 Bed - 2.5 Bath,Newly Renovated $500 VISA GIFTCARD SPECIAL!!\", \"price\": 2879.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5876834743.html\", \"age\": 1.039153626904679, \"size\": 1247.0}, {\"loc\": \"eby\", \"title\": \"Hurry in today to Ave.64 in Emeryville!! Limited Time offers!!\", \"price\": 3147.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880025085.html\", \"age\": 1.039153626904679, \"size\": 1073.0}, {\"loc\": \"eby\", \"title\": \"Come to Enjoy Life for the Holidays in the Lafayette Hills!\", \"price\": 2422.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879995418.html\", \"age\": 1.036908819486889, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Come in Today for a Tour at Avenue 64!\", \"price\": 2540.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880021362.html\", \"age\": 1.036162704038111, \"size\": 731.0}, {\"loc\": \"eby\", \"title\": \"Popular Floor Plan Available Soon!\", \"price\": 3412.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880024270.html\", \"age\": 1.0331889488851689, \"size\": 592.0}, {\"loc\": \"eby\", \"title\": \"\\u25cbCHECK OUT OUR GREAT DEAL\\u25cbSPEND LESS-GET MORE!\\u25cb\", \"price\": 2050.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880016429.html\", \"age\": 1.0331889488851689, \"size\": 527.0}, {\"loc\": \"eby\", \"title\": \"2 bedroom 2 bathroom apartment home available for move in\", \"price\": 1598.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880023600.html\", \"age\": 1.0324481752428372, \"size\": 955.0}, {\"loc\": \"eby\", \"title\": \"$99 Deposit!!1 Bedroom 1 Bath Home Available Now!\", \"price\": 2540.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880013189.html\", \"age\": 1.031708463076111, \"size\": 714.0}, {\"loc\": \"eby\", \"title\": \"2BD/2BA Available Soon! Special available\", \"price\": 2501.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880022506.html\", \"age\": 1.031708463076111, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Beautiful 1 bed 1 bath w/ den facing San Pablo\", \"price\": 2875.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880009789.html\", \"age\": 1.031708463076111, \"size\": 787.0}, {\"loc\": \"eby\", \"title\": \"Saving the BEST for Last / 3bd/2ba with Washer & Dryer / Walk to BART\", \"price\": 3235.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880021940.html\", \"age\": 1.031708463076111, \"size\": 1270.0}, {\"loc\": \"eby\", \"title\": \"in1x1 enjoy $2,000 visa giftcard upon move-in\", \"price\": 2053.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880021772.html\", \"age\": 1.031708463076111, \"size\": 700.0}, {\"loc\": \"eby\", \"title\": \"BEAUTIFULLY APPOINTED 2X1 WITH GRANITE KITCHEN & BATH\", \"price\": 1951.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880020862.html\", \"age\": 1.0309698101050964, \"size\": null}, {\"loc\": \"eby\", \"title\": \"The time is running out for this Fall Special!\", \"price\": 1795.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880013478.html\", \"age\": 1.0309698101050964, \"size\": 725.0}, {\"loc\": \"eby\", \"title\": \"Spacious Pleasant Hill Apartments\", \"price\": 1970.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880020724.html\", \"age\": 1.0309698101050964, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Bright 1 bedroom, private parking spot\", \"price\": 1950.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880020286.html\", \"age\": 1.0302322140564226, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Gorgeous Downtown Concord Condo\", \"price\": 1750.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880009447.html\", \"age\": 1.0302322140564226, \"size\": 750.0}, {\"loc\": \"eby\", \"title\": \"Yes!!! Is Ready and Available For You To Move In!!\", \"price\": 1850.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880018045.html\", \"age\": 1.0287601836651026, \"size\": 650.0}, {\"loc\": \"eby\", \"title\": \"~*~* Newly Remodeled Home ~*~*\", \"price\": 2500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5870658983.html\", \"age\": 1.0287601836651026, \"size\": 800.0}, {\"loc\": \"eby\", \"title\": \"....WASHER DRYER IN UNIT... $199 DEPOSIT...AMAZING RENT SPECIALS....\", \"price\": 2450.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880017678.html\", \"age\": 1.0287601836651026, \"size\": 1004.0}, {\"loc\": \"eby\", \"title\": \"Bright, Spacious renovated 1 bed, 1 bath in Adams Point, with parking\", \"price\": 1825.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5860047932.html\", \"age\": 1.0280257448081296, \"size\": 655.0}, {\"loc\": \"eby\", \"title\": \"ISN'T IT TIME YOU TREAT YOURSELF?START HERE AT LEILANI APTS!\", \"price\": 1695.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5860195404.html\", \"age\": 1.0280257448081296, \"size\": 640.0}, {\"loc\": \"eby\", \"title\": \"\\u266b \\u266cTHE HARMONY & LUXURY HERE IS MUSICAL\\u266a \\u266b\", \"price\": 2225.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5859571147.html\", \"age\": 1.0280257448081296, \"size\": 1000.0}, {\"loc\": \"eby\", \"title\": \"Renovated Pleasant Hill Apartments in Great Location!\", \"price\": 1735.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880014525.html\", \"age\": 1.0265600085340136, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Cozy Up at the Fireplace... Almost the Holidays!\", \"price\": 2589.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880000323.html\", \"age\": 1.0258287066410665, \"size\": 1100.0}, {\"loc\": \"eby\", \"title\": \"1 bed, 1 bath, Close to BART, Close to Shopping, New Community\", \"price\": 2357.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880013683.html\", \"age\": 1.0258287066410665, \"size\": 886.0}, {\"loc\": \"eby\", \"title\": \"SPECIAL OFFER: 1 1/2 mon. credit on renovated 3 bed, 1 bath house\", \"price\": 2595.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5876341004.html\", \"age\": 1.0250984459376111, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Stunning and Spacious Home in Union City!\", \"price\": 4000.0, \"brs\": 5.0, \"mine\": 0, \"link\": \"/eby/apa/5880002413.html\", \"age\": 1.0250984459376111, \"size\": 2976.0}, {\"loc\": \"eby\", \"title\": \"Great Location Near Shopping And Schools!\", \"price\": 2605.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880012588.html\", \"age\": 1.0250984459376111, \"size\": 990.0}, {\"loc\": \"eby\", \"title\": \"Walking Closets! Den, Vaulted Ceilings, Fireplace, 2 Cover Parking\", \"price\": 3200.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5880011456.html\", \"age\": 1.024369224201642, \"size\": 1400.0}, {\"loc\": \"eby\", \"title\": \"GET YOUR NEW HOME READY FOR CHRISTMAS!!!\", \"price\": 2395.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880011188.html\", \"age\": 1.024369224201642, \"size\": 1050.0}, {\"loc\": \"eby\", \"title\": \"Higby Move-in Special- 6 months free Parking!!! Call Today!!\", \"price\": 2800.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880010206.html\", \"age\": 1.0236410392174724, \"size\": 709.0}, {\"loc\": \"eby\", \"title\": \"Ready Now! Rooftop Lounge Panoramic View!\", \"price\": 2825.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879998192.html\", \"age\": 1.0229138887757112, \"size\": 709.0}, {\"loc\": \"eby\", \"title\": \"For More Space & Full Size W/D! Why Not Stop In?!\", \"price\": 2551.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880009287.html\", \"age\": 1.0229138887757112, \"size\": 985.0}, {\"loc\": \"eby\", \"title\": \"The Right Size! The Right Location! $99 Deposit: With Approved Credit!\", \"price\": 2188.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880008921.html\", \"age\": 1.0229138887757112, \"size\": 610.0}, {\"loc\": \"eby\", \"title\": \"SAVING MONEY BRIGHTENS YOUR DAY? CHECK OUT OUR MOVING SPECIAL!!!\", \"price\": 2445.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880008868.html\", \"age\": 1.02218777067324, \"size\": 1225.0}, {\"loc\": \"eby\", \"title\": \"Furnished Incline Village Home for Rent\", \"price\": 3900.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5870307263.html\", \"age\": 1.02218777067324, \"size\": 2600.0}, {\"loc\": \"eby\", \"title\": \"**GREAT DEAL! CALL NOW THIS WEEK ONLY! $199 DEPOSIT**\", \"price\": 2450.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880008746.html\", \"age\": 1.02218777067324, \"size\": 1004.0}, {\"loc\": \"eby\", \"title\": \"\\u25cbSIT BACK\\u25cbRELAX.YOUR NEW VIEW AWAITS!\\u25cb\", \"price\": 2050.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880008362.html\", \"age\": 1.02218777067324, \"size\": 527.0}, {\"loc\": \"eby\", \"title\": \"\\u25cbSIT BACK\\u25cbRELAX.YOUR NEW VIEW AWAITS!\\u25cb\", \"price\": 2050.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5880007515.html\", \"age\": 1.0214626827131925, \"size\": 527.0}, {\"loc\": \"eby\", \"title\": \"Take \\\"Moving\\\" Off Your To-Do List This Weekend! Come to The Grand\", \"price\": 3053.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879991062.html\", \"age\": 1.0214626827131925, \"size\": 780.0}, {\"loc\": \"eby\", \"title\": \"Luxury Living in Walnut Creek- 6 Weeks Free*, #533\", \"price\": 3470.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5874722330.html\", \"age\": 1.0207386227049307, \"size\": 1086.0}, {\"loc\": \"eby\", \"title\": \"Beautiful 2 Bedroom close to shopping!\", \"price\": 2627.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880006466.html\", \"age\": 1.0207386227049307, \"size\": 1029.0}, {\"loc\": \"eby\", \"title\": \"TIS THE SEASON TO BE JOLLY JUST A LITTLE EARLY!IT'S NEVER TOO SOON!\", \"price\": 2295.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880006286.html\", \"age\": 1.0207386227049307, \"size\": 1100.0}, {\"loc\": \"eby\", \"title\": \"Available Now, Pool, Soaking Tub, Granite Look Counter, WD\", \"price\": 1716.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879988933.html\", \"age\": 1.0207386227049307, \"size\": 975.0}, {\"loc\": \"eby\", \"title\": \"Luxury/Brand New/Downtown/Walk to Bart #530\", \"price\": 3820.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5874718887.html\", \"age\": 1.0200155884640234, \"size\": 1063.0}, {\"loc\": \"eby\", \"title\": \"Attention Renters!! We can Help\", \"price\": 2500.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5872083217.html\", \"age\": 1.0200155884640234, \"size\": 2500.0}, {\"loc\": \"eby\", \"title\": \"Cute and convenient, 2bd/1ba Apt in Bay Farm Island - 92 Maitland Dr#D\", \"price\": 2200.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5876856308.html\", \"age\": 1.019293577812225, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Refrigerator, Garages available for rental, Covered parking\", \"price\": 1860.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880003753.html\", \"age\": 1.019293577812225, \"size\": 803.0}, {\"loc\": \"eby\", \"title\": \"**HOLIDAY SPECIALS**$1000 off Dec Rent For November Move-In!\", \"price\": 2375.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879944139.html\", \"age\": 1.0185725885774524, \"size\": 1187.0}, {\"loc\": \"eby\", \"title\": \"Spacious 2bed/2bath 3rd floor walk to Bart! Stop by and inquire today!\", \"price\": 2408.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5880003069.html\", \"age\": 1.0185725885774524, \"size\": 955.0}, {\"loc\": \"eby\", \"title\": \"Sunny, Spacious 2-Bedroom w/ THE VIEW\", \"price\": 2500.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879994484.html\", \"age\": 1.0185725885774524, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Amazing 1 Bedroom Available Now!!\", \"price\": 2600.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879992231.html\", \"age\": 1.017852618593764, \"size\": 716.0}, {\"loc\": \"eby\", \"title\": \"Open House Today, Pantry, Granite Look Counter, WD\", \"price\": 1736.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879988463.html\", \"age\": 1.016415727746449, \"size\": 850.0}, {\"loc\": \"eby\", \"title\": \"*COMING SOON! 3BD/2.5BA DISCO BAY HOME-DEEP WATER-1464 DISCOVERY BLVD*\", \"price\": 3100.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5875237637.html\", \"age\": 1.016415727746449, \"size\": 2349.0}, {\"loc\": \"eby\", \"title\": \"GET THE PERFECT NEW FURNITURE ON US!FREE RENT!CALL & ASK ABOUT IT!\", \"price\": 2345.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879998690.html\", \"age\": 1.0156988025814513, \"size\": 1100.0}, {\"loc\": \"eby\", \"title\": \"*Gorgeous 1 bedroom/1bathroom with washer and dryer*\", \"price\": 1956.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879974902.html\", \"age\": 1.0149828880647511, \"size\": 600.0}, {\"loc\": \"eby\", \"title\": \"Vaulted Ceilings In Living Room ~ 2x2 Only One Left!\", \"price\": 2560.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879989054.html\", \"age\": 1.0149828880647511, \"size\": 935.0}, {\"loc\": \"eby\", \"title\": \"Stop The Commute * Walk To Work * San Ramon Living!!!\", \"price\": 2681.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879987717.html\", \"age\": 1.0149828880647511, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Top Floor Online Payments, Picnic and BBQ areas, Dishwasher\", \"price\": 1830.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879996957.html\", \"age\": 1.0142679820607903, \"size\": 898.0}, {\"loc\": \"eby\", \"title\": \"Very Close to Shopping, Dining, & Broadway Plaza, Energy Efficient\", \"price\": 1999.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879994546.html\", \"age\": 1.0128411870788923, \"size\": 770.0}, {\"loc\": \"eby\", \"title\": \"View Today, Pool, Soaking Tub, Near Freeway, Spacious, WD\", \"price\": 1616.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879987901.html\", \"age\": 1.0128411870788923, \"size\": 715.0}, {\"loc\": \"eby\", \"title\": \"OPEN HOUSE THIS WEEKEND 10AM-5PM BOTH DAYS!\", \"price\": 2499.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879994332.html\", \"age\": 1.0128411870788923, \"size\": 707.0}, {\"loc\": \"eby\", \"title\": \"2 Bedroom, 2 Bath + Vaulted Ceilings\", \"price\": 2300.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879994113.html\", \"age\": 1.0128411870788923, \"size\": 957.0}, {\"loc\": \"eby\", \"title\": \"Garages available for rental, Playground area, Refrigerator\", \"price\": 1860.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879993633.html\", \"age\": 1.0121292938598156, \"size\": 803.0}, {\"loc\": \"eby\", \"title\": \"Completely Remodeled Large 1BR Apartment!\", \"price\": 1443.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5876741386.html\", \"age\": 1.0121292938598156, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Fully Furnished Fitness Center!\", \"price\": 2800.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879993426.html\", \"age\": 1.0121292938598156, \"size\": 709.0}, {\"loc\": \"eby\", \"title\": \"Beautiful 1 Bedroom, Top Floor, East Bay Hillside View - Coming Soon!\", \"price\": 2967.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879992452.html\", \"age\": 1.0114184006711573, \"size\": 793.0}, {\"loc\": \"eby\", \"title\": \"$99 Deposit On This Perfect Home For You\", \"price\": 2380.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879985883.html\", \"age\": 1.0114184006711573, \"size\": 988.0}, {\"loc\": \"eby\", \"title\": \"Coming soon 1 bedroom\", \"price\": 1605.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879990799.html\", \"age\": 1.0107085054072102, \"size\": 885.0}, {\"loc\": \"eby\", \"title\": \"Beautiful 3 bedroom on Lake in Discovery Bay\", \"price\": 2600.0, \"brs\": 3.0, \"mine\": 0, \"link\": \"/eby/apa/5879974324.html\", \"age\": 1.0099996059681757, \"size\": 2100.0}, {\"loc\": \"eby\", \"title\": \"beautiful home in Antioch\", \"price\": 2500.0, \"brs\": 5.0, \"mine\": 0, \"link\": \"/eby/apa/5879979475.html\", \"age\": 1.0099996059681757, \"size\": 2300.0}, {\"loc\": \"eby\", \"title\": \"Charming, Quiet 2bd/1.5 bath\", \"price\": 1475.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5874594714.html\", \"age\": 1.0092917002601411, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Pool, High End Flooring, Stainless Steel Appliances,Granite Countertop\", \"price\": 2095.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879988402.html\", \"age\": 1.008584786195061, \"size\": 900.0}, {\"loc\": \"eby\", \"title\": \"Wonderful One-Bedroom Apartment Now Available!\", \"price\": 1809.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879986793.html\", \"age\": 1.0078788616907353, \"size\": 778.0}, {\"loc\": \"eby\", \"title\": \"MASSIVE Two-Bedroom Apartment Home Turn Key Ready!\", \"price\": 3080.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879985785.html\", \"age\": 1.0071739246707898, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Very Large REMODEL /***2 WEEKS FREE***\", \"price\": 1350.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879975839.html\", \"age\": 1.0071739246707898, \"size\": 1025.0}, {\"loc\": \"eby\", \"title\": \"Very Large REMODEL 1 bdr,/Low Deposit\", \"price\": 1300.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879975200.html\", \"age\": 1.0064699730646545, \"size\": 975.0}, {\"loc\": \"eby\", \"title\": \"Regular One Bedroom Ready Now!\", \"price\": 2205.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879984827.html\", \"age\": 1.0064699730646545, \"size\": 695.0}, {\"loc\": \"eby\", \"title\": \"Bold and Modern Living - Walk to BART - Dine in Downtown!\", \"price\": 3915.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879984810.html\", \"age\": 1.0064699730646545, \"size\": 1232.0}, {\"loc\": \"eby\", \"title\": \"Rare 2Bedroom 1 Bathroom. Only $99 Deposit\", \"price\": 2265.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879984047.html\", \"age\": 1.0057670048075447, \"size\": 876.0}, {\"loc\": \"eby\", \"title\": \"3rd Floor 1 Bedroom Just For You!\", \"price\": 2005.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879983445.html\", \"age\": 1.0057670048075447, \"size\": 748.0}, {\"loc\": \"eby\", \"title\": \"Easy Peasy \\u263a\", \"price\": 1985.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879983218.html\", \"age\": 1.0057670048075447, \"size\": 575.0}, {\"loc\": \"eby\", \"title\": \"LARGE 2BR 2BA WITH WASHER DRYER! PERFECT FOR ROOMMATES!\", \"price\": 2485.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879982972.html\", \"age\": 1.0050650178404403, \"size\": 1204.0}, {\"loc\": \"eby\", \"title\": \"Perfect Home For You!\", \"price\": 2005.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879982803.html\", \"age\": 1.0050650178404403, \"size\": 748.0}, {\"loc\": \"eby\", \"title\": \"BEAUTIFUL GARDEN SCENERY FROM THE COMFORT OF YOUR PRIVATE PATIO\", \"price\": 2430.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879981484.html\", \"age\": 1.0043640101100657, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Very Large REMODEL /***2 WEEKS FREE***\", \"price\": 1350.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879971253.html\", \"age\": 1.0043640101100657, \"size\": 1025.0}, {\"loc\": \"eby\", \"title\": \"Very Large REMODEL 1 bdr,/Low Deposit\", \"price\": 1300.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879970890.html\", \"age\": 1.0036639795688693, \"size\": 975.0}, {\"loc\": \"eby\", \"title\": \"NO RENT unitl December, Call now for details Rent today, move tomorrow\", \"price\": 1711.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879972464.html\", \"age\": 1.0036639795688693, \"size\": 540.0}, {\"loc\": \"eby\", \"title\": \"Powell? MORE LIKE WOW!\", \"price\": 2553.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879970896.html\", \"age\": 1.0029649241750043, \"size\": 643.0}, {\"loc\": \"eby\", \"title\": \"THIS IS YOUR LAST CHANCE TO TAKE THIS AMAZING DEAL CALL NOW!!\", \"price\": 2395.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879978000.html\", \"age\": 1.0022668418923086, \"size\": 1225.0}, {\"loc\": \"eby\", \"title\": \"Very Large REMODEL /***2 WEEKS FREE***\", \"price\": 1350.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879966805.html\", \"age\": 1.0015697306902853, \"size\": 1025.0}, {\"loc\": \"eby\", \"title\": \"WE HAVE YOUR WISHED APARTMENT HOME HERE!!!\", \"price\": 1965.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879976526.html\", \"age\": 1.0015697306902853, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"2Bd/1Ba ground level w/ extra large patio and modern updates!\", \"price\": 2399.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879976183.html\", \"age\": 1.0008735885440818, \"size\": 900.0}, {\"loc\": \"eby\", \"title\": \"2 Bedroom 2 Bath Available in Brentwood\", \"price\": 1875.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879975364.html\", \"age\": 1.0008735885440818, \"size\": 950.0}, {\"loc\": \"eby\", \"title\": \"Very Large REMODEL 1 bdr,/Low Deposit\", \"price\": 1300.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879967248.html\", \"age\": 1.0001784134344716, \"size\": 975.0}, {\"loc\": \"eby\", \"title\": \"Newly renovated flat with balcony; quiet, lovely area near: Ohlone par\", \"price\": 2125.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879955103.html\", \"age\": 0.9987909562761369, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Contemporary Remodeled 2 bedroom with a patio\", \"price\": 3585.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879965145.html\", \"age\": 0.9980986702169119, \"size\": 1090.0}, {\"loc\": \"eby\", \"title\": \"Gorgeous Two-Bedroom Residence in a Pet-Friendly Community!\", \"price\": 2482.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879969880.html\", \"age\": 0.9974073431732413, \"size\": 1140.0}, {\"loc\": \"eby\", \"title\": \"Look No Further! We Have What You're Looking For! Steps From BART!\", \"price\": 2713.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879949380.html\", \"age\": 0.9967169731537352, \"size\": 1046.0}, {\"loc\": \"eby\", \"title\": \"Waterstone at Fremont's Awesome Autumn Rates\", \"price\": 2160.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879959528.html\", \"age\": 0.9960275581725133, \"size\": 980.0}, {\"loc\": \"eby\", \"title\": \"2-bedroom (there are two separate rooms in addition to a small living\", \"price\": 1875.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879943547.html\", \"age\": 0.9960275581725133, \"size\": null}, {\"loc\": \"eby\", \"title\": \"Two bed, 2 bath, washer,dryer,patio,garage\", \"price\": 2478.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879967324.html\", \"age\": 0.9953390962491863, \"size\": 1023.0}, {\"loc\": \"eby\", \"title\": \"2 Bed - 2.5 Bath, Will hand you $500 Visa gift card!\", \"price\": 2872.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879955779.html\", \"age\": 0.9953390962491863, \"size\": 1247.0}, {\"loc\": \"eby\", \"title\": \"2 Bed - 2.5 Bath, 3 Patios & $500 gift Card!\", \"price\": 2872.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879966266.html\", \"age\": 0.9946515854088367, \"size\": 1247.0}, {\"loc\": \"eby\", \"title\": \"Move in Special! $500 off move in cost!\", \"price\": 2395.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879965764.html\", \"age\": 0.9946515854088367, \"size\": 1100.0}, {\"loc\": \"eby\", \"title\": \"One-Bedroom Apartment In The Heart Of Pleasanton!\", \"price\": 2152.0, \"brs\": 1.0, \"mine\": 0, \"link\": \"/eby/apa/5879964964.html\", \"age\": 0.9939650236819991, \"size\": 783.0}, {\"loc\": \"eby\", \"title\": \"\\u27b8RIGHT THIS WAY \\u27bc \\u27b8 \\u27bc OPEN HOUSE TODAY!\", \"price\": 2225.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5879964519.html\", \"age\": 0.9939650236819991, \"size\": 925.0}, {\"loc\": \"eby\", \"title\": \"Glenview 2 BR + 1 Bath available for rent\", \"price\": 3100.0, \"brs\": 2.0, \"mine\": 0, \"link\": \"/eby/apa/5867205827.html\", \"age\": 0.9939650236819991, \"size\": 1150.0}, {\"loc\": \"eby\", \"title\": \"Mine\", \"price\": 2200.0, \"brs\": 2.0, \"mine\": 1, \"link\": \"None\", \"age\": 2.9523737188733326, \"size\": 1400.0}]}, \"encoding\": {\"y\": {\"field\": \"price\", \"type\": \"quantitative\"}, \"color\": {\"field\": \"mine\", \"type\": \"nominal\"}, \"x\": {\"field\": \"size\", \"type\": \"quantitative\"}}, \"config\": {\"cell\": {\"width\": 500, \"height\": 350}, \"mark\": {\"size\": 200.0}}, \"mark\": \"circle\"};\n", "var selector = \"#b5c5d25b-82b9-48b4-b4c5-5596b3e90154\";\n", "var type = \"vega-lite\";\n", "\n", "var output_area = this;\n", "require(['nbextensions/jupyter-vega/index'], function(vega) {\n", " vega.render(selector, spec, type, output_area);\n", "}, function (err) {\n", " if (err.requireType !== 'scripterror') {\n", " throw(err);\n", " }\n", "});\n" ] }, "metadata": { "jupyter-vega": "#b5c5d25b-82b9-48b4-b4c5-5596b3e90154" }, "output_type": "display_data" }, { "data": { "image/png": "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" }, "metadata": { "jupyter-vega": "#b5c5d25b-82b9-48b4-b4c5-5596b3e90154" }, "output_type": "display_data" } ], "source": [ "import altair\n", "graph = altair.Chart(results)\n", "graph.mark_circle(size=200).encode(x='size', y='price',\n", " color='mine:N')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": {}, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "smin, smax = (1300, 1500)\n", "n_br = 2\n", "# subset = results.query('size > @smin and size < @smax')\n", "fig, ax = plt.subplots()\n", "results.query('brs < 4').groupby('brs').hist('price', bins=np.arange(0, 5000, 200), ax=ax)\n", "ax.axvline(target_price, c='r', ls='--')\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [], "source": [ "# Finally, we can save this data to a CSV to play around with it later.\n", "# We'll have to remove some annoying characters first:\n", "import string\n", "use_chars = string.ascii_letters +\\\n", " ''.join([str(i) for i in range(10)]) +\\\n", " ' /\\.'\n", "results['title'] = results['title'].apply(\n", " lambda a: ''.join([i for i in a if i in use_chars]))\n", "\n", "results.to_csv('../data/craigslist_results.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## RECAP\n", "To sum up what we just did:\n", "\n", "* We defined the ability to query a website using a custom URL. This is usually the same in structure for website, but the parameter names will be different.\n", "* We sent a `get` request to Craigslist using the `requests` module of python.\n", "* We parsed the response using `BeautifulSoup4`.\n", "* We then looped through a bunch of apartment listings, pulled some relevant data, and combined it all into a cleaned and usable dataframe with `pandas`.\n", "\n", "Next up I'll take a look at the data, and see if there's anything interesting to make of it." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bonus - auto-emailing yourself w/ notifications\n", "A few people have asked me about using this kind of process to make a bot that scrapes craigslist periodically. This is actually quite simple, as it basically involves pulling the top listings from craigslist, checking this against an \"old\" list, and detecting if there's anything new that has popped up since the last time you checked.\n", "\n", "Here's a simple script that will get the job done. Once again, don't pull too much data at once, and don't query Craigslist too frequently, or you're gonna get banned." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [], "source": [ "# We'll use the gmail module (there really is a module for everything in python)\n", "import gmail\n", "import time" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "ename": "SMTPAuthenticationError", "evalue": "(535, '5.7.8 Username and Password not accepted. Learn more at\\n5.7.8 https://support.google.com/mail/answer/14257 of1sm4627014pbc.11 - gsmtp')", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mSMTPAuthenticationError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mgm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgmail\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGMail\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'my_username'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'my_password'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mgm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconnect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m# Define our URL and a query we want to post\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mbase_url\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'http://sfbay.craigslist.org/'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/choldgraf/anaconda/lib/python3.7/site-packages/gmail/gmail.pyc\u001b[0m in \u001b[0;36mconnect\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mehlo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 67\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlogin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0musername\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpassword\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 68\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mSMTPAuthenticationError\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0;31m# Catch redirect to account unlock & reformat\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/choldgraf/anaconda/lib/python3.7/smtplib.pyc\u001b[0m in \u001b[0;36mlogin\u001b[0;34m(self, user, password)\u001b[0m\n\u001b[1;32m 620\u001b[0m \u001b[0;31m# 235 == 'Authentication successful'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 621\u001b[0m \u001b[0;31m# 503 == 'Error: already authenticated'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 622\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mSMTPAuthenticationError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 623\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mcode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 624\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mSMTPAuthenticationError\u001b[0m: (535, '5.7.8 Username and Password not accepted. Learn more at\\n5.7.8 https://support.google.com/mail/answer/14257 of1sm4627014pbc.11 - gsmtp')" ] } ], "source": [ "gm = gmail.GMail('my_username', 'my_password')\n", "gm.connect()\n", "\n", "# Define our URL and a query we want to post\n", "base_url = 'http://sfbay.craigslist.org/'\n", "url = base_url + 'search/eby/apa?nh=48&anh=49&nh=112&nh=58&nh=61&nh=62&nh=66&max_price=2200&bedrooms=1'\n", "\n", "# This will remove weird characters that people put in titles like ****!***!!!\n", "use_chars = string.ascii_letters + ''.join([str(i) for i in range(10)]) + ' '" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [], "source": [ "link_list = [] # We'll store the data here\n", "link_list_send = [] # This is a list of links to be sent\n", "send_list = [] # This is what will actually be sent in the email\n", "\n", "# Careful with this...too many queries == your IP gets banned temporarily\n", "while True:\n", " resp = requests.get(url)\n", " txt = bs4(resp.text, 'html.parser')\n", " apts = txt.findAll(attrs={'class': \"row\"})\n", " \n", " # We're just going to pull the title and link\n", " for apt in apts:\n", " title = apt.find_all('a', attrs={'class': 'hdrlnk'})[0]\n", " name = ''.join([i for i in title.text if i in use_chars])\n", " link = title.attrs['href']\n", " if link not in link_list and link not in link_list_send:\n", " print('Found new listing')\n", " link_list_send.append(link)\n", " send_list.append(name + ' - ' + base_url+link)\n", " \n", " # Flush the cache if we've found new entries\n", " if len(link_list_send) > 0:\n", " print('Sending mail!')\n", " msg = '\\n'.join(send_list)\n", " m = email.message.Message()\n", " m.set_payload(msg)\n", " gm.send(m, ['recipient_email@mydomain.com'])\n", " link_list += link_list_send\n", " link_list_send = []\n", " send_list = []\n", " \n", " # Sleep a bit so CL doesn't ban us\n", " sleep_amt = np.random.randint(60, 120)\n", " time.sleep(sleep_amt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And there you have it - your own little bot to keep you on the top of the rental market." ] } ], "metadata": { "category": "til", "date": "2015-08-30", "hide_input": false, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" }, "redirect": "craigslist-scrape", "tags": "python, programming", "title": "Scraping craigslist" }, "nbformat": 4, "nbformat_minor": 4 }