No Description

housing-prices-sao-paulo-checkpoint.ipynb 12KB

    { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Housing Prices in São Paulo\n", "\n", "This notebook gathers information about housing prices and their sizes on the city of São Paulo, Brazil." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Import Libraries\n", "import pandas as pd\n", "import requests\n", "from bs4 import BeautifulSoup\n", "import matplotlib.pyplot as plt\n", "import matplotlib\n", "matplotlib.style.use('ggplot')\n", "%matplotlib notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This dataset is gathering information from [Imovel Web](http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-1.html), a brazilian online real estate portal." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true, "scrolled": true }, "outputs": [], "source": [ "def getURL(page_number):\n", " base_url = \"http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-\"\n", " end_url = \".html\"\n", " url = base_url + str(page_number) + end_url\n", " return url" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def num(s):\n", " try:\n", " return int(s)\n", " except ValueError:\n", " return float(s)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def grab_data(url, i):\n", " try:\n", " result = requests.get(url)\n", " page = BeautifulSoup(result.content, \"html5lib\")\n", " items = page.find_all('li', class_='post')\n", " for item in items:\n", " title = item.find(\"a\", class_='dl-aviso-link').get('title')\n", " price = item.find(\"span\", class_='precio-valor').string.replace(\"R$\",\"\").replace(\".\",\"\").strip()\n", " size = item.find(\"li\", class_='post-m2totales')\n", " if size is not None:\n", " size = size.text.replace(\"total\",\"\").strip()\n", " #print(size + \" - \" + price + \" - \" + title)\n", " price = num(str(price))/1000\n", " size = num(str(size.replace(\"m²\",\"\")))\n", " df.loc[i] = [size, price]\n", " i = i + 1\n", " return i\n", " except:\n", " print(\"--> ERROR\")\n", " return i" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-1.html\n", "2 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-2.html\n", "3 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-3.html\n", "4 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-4.html\n", "5 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-5.html\n", "6 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-6.html\n", "7 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-7.html\n", "8 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-8.html\n", "9 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-9.html\n", "10 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-10.html\n", "11 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-11.html\n", "12 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-12.html\n", "13 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-13.html\n", "14 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-14.html\n", "15 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-15.html\n", "16 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-16.html\n", "--> ERROR\n", "17 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-17.html\n", "18 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-18.html\n", "19 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-19.html\n", "20 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-20.html\n", "21 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-21.html\n", "22 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-22.html\n", "23 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-23.html\n", "24 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-24.html\n", "25 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-25.html\n", "26 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-26.html\n", "27 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-27.html\n", "28 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-28.html\n", "29 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-29.html\n", "--> ERROR\n", "30 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-30.html\n", "31 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-31.html\n", "32 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-32.html\n", "33 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-33.html\n", "34 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-34.html\n", "35 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-35.html\n", "36 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-36.html\n", "37 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-37.html\n", "38 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-38.html\n", "39 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-39.html\n", "40 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-40.html\n", "41 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-41.html\n", "42 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-42.html\n", "43 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-43.html\n", "44 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-44.html\n", "45 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-45.html\n", "--> ERROR\n", "46 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-46.html\n", "47 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-47.html\n", "48 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-48.html\n", "49 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-49.html\n", "50 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-50.html\n", "51 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-51.html\n", "52 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-52.html\n", "53 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-53.html\n", "54 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-54.html\n", "55 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-55.html\n", "56 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-56.html\n", "57 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-57.html\n", "58 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-58.html\n", "59 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-59.html\n", "60 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-60.html\n", "61 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-61.html\n", "62 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-62.html\n", "63 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-63.html\n", "--> ERROR\n", "64 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-64.html\n", "65 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-65.html\n", "66 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-66.html\n", "67 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-67.html\n", "68 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-68.html\n", "69 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-69.html\n", "70 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-70.html\n", "71 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-71.html\n", "72 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-72.html\n", "73 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-73.html\n", "74 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-74.html\n", "75 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-75.html\n", "76 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-76.html\n", "77 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-77.html\n", "78 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-78.html\n", "79 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-79.html\n", "80 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-80.html\n", "81 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-81.html\n", "82 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-82.html\n", "83 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-83.html\n", "84 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-84.html\n", "85 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-85.html\n", "86 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-86.html\n", "--> ERROR\n", "87 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-87.html\n", "88 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-88.html\n", "--> ERROR\n", "89 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-89.html\n", "90 - http://www.imovelweb.com.br/imoveis-venda-sao-paulo-sp-pagina-90.html\n" ] } ], "source": [ "df = pd.DataFrame([], columns=('size', 'price'))\n", "i = 0\n", "for page_number in range(1,100):\n", " url = getURL(page_number)\n", " print(str(page_number) + \" - \" + url)\n", " i = grab_data(url, i)\n", "df.tail() " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": false }, "outputs": [], "source": [ "df.plot(x=\"size\", y=\"price\", kind='scatter', color='DarkBlue', xlim=(0, 350), ylim=(0, 2500000))\n", "plt.xlabel(\"Size (m²)\")\n", "plt.ylabel(\"Price (R$)\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }