{
"cells": [
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from IPython.core.display import display, HTML\n",
"display(HTML(\"\"))"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"from selenium import webdriver\n",
"from selenium.webdriver.chrome.options import Options\n",
"from selenium.common.exceptions import NoSuchElementException\n",
"\n",
"options = Options()\n",
"#options.headless = True\n",
"b = webdriver.Chrome(options=options)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"import time"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"keep checking\n",
"keep checking\n",
"keep checking\n",
"keep checking\n",
"keep checking\n",
"keep checking\n",
"keep checking\n",
"keep checking\n",
"keep checking\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b.get(\"https://tyler.caraza-harter.com/cs320/s20/materials/lec-19/page1.html\")\n",
"# keep looking for table, up to 5 seconds\n",
"for i in range(50):\n",
" try:\n",
" tbl = b.find_element_by_id(\"coords\")\n",
" break\n",
" except NoSuchElementException:\n",
" print(\"keep checking\")\n",
" pass\n",
" time.sleep(0.1)\n",
"tbl"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"from bs4 import BeautifulSoup\n",
"page = BeautifulSoup(b.page_source, \"html.parser\")"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"tbls = page.find_all(\"table\")\n",
"assert len(tbls) == 2"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"11"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trs = tbls[1].find_all(\"tr\")\n",
"len(trs)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[['x', 'y'],\n",
" ['0', '1'],\n",
" ['2', '3'],\n",
" ['4', '5'],\n",
" ['6', '7'],\n",
" ['8', '9'],\n",
" ['10', '11'],\n",
" ['12', '13'],\n",
" ['14', '15'],\n",
" ['16', '17'],\n",
" ['18', '19']]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rows = [tr.find_all(\"td\") for tr in trs]\n",
"for i in range(len(rows)):\n",
" rows[i] = [td.get_text() for td in rows[i]]\n",
"rows"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" x | \n",
" y | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
"
\n",
" \n",
" 2 | \n",
" 4 | \n",
" 5 | \n",
"
\n",
" \n",
" 3 | \n",
" 6 | \n",
" 7 | \n",
"
\n",
" \n",
" 4 | \n",
" 8 | \n",
" 9 | \n",
"
\n",
" \n",
" 5 | \n",
" 10 | \n",
" 11 | \n",
"
\n",
" \n",
" 6 | \n",
" 12 | \n",
" 13 | \n",
"
\n",
" \n",
" 7 | \n",
" 14 | \n",
" 15 | \n",
"
\n",
" \n",
" 8 | \n",
" 16 | \n",
" 17 | \n",
"
\n",
" \n",
" 9 | \n",
" 18 | \n",
" 19 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" x y\n",
"0 0 1\n",
"1 2 3\n",
"2 4 5\n",
"3 6 7\n",
"4 8 9\n",
"5 10 11\n",
"6 12 13\n",
"7 14 15\n",
"8 16 17\n",
"9 18 19"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"pd.DataFrame(rows[1:], columns=rows[0])"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"b.close()"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [],
"source": [
"options = Options()\n",
"#options.headless = True\n",
"b = webdriver.Chrome(options=options)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"b.get(\"https://tyler.caraza-harter.com/cs320/s20/materials/lec-19/page2.html\")\n"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [],
"source": [
"while True:\n",
" try:\n",
" btn = b.find_element_by_id(\"more\")\n",
" except NoSuchElementException:\n",
" break\n",
" btn.click()\n",
" time.sleep(1)"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"name | formed | dissipated | mph | damage | deaths |
Baker | 08/18/1950 | 09/01/1950 | 105 | 2.55M | 38 |
Camille | 08/14/1969 | 08/22/1969 | 175 | 1.42B | 259 |
Eloise | 09/13/1975 | 09/24/1975 | 125 | 560M | 80 |
Frederic | 08/29/1979 | 09/15/1979 | 130 | 1.77B | 12 |
Elena | 08/28/1985 | 09/04/1985 | 125 | 1.3B | 9 |
Opal | 09/27/1995 | 10/06/1995 | 150 | 4.7B | 63 |
Danny | 07/16/1997 | 07/27/1997 | 80 | 100M | 4 |
Ivan | 09/02/2004 | 09/25/2004 | 165 | 26.1B | 92 |
Dennis | 07/04/2005 | 07/18/2005 | 150 | 3.98B | 76 |
Katrina | 08/23/2005 | 08/31/2005 | 175 | 125B | 1245 |
Carol | 08/25/1954 | 09/01/1954 | 115 | 462M | 72 |
Donna | 08/29/1960 | 09/14/1960 | 145 | 980M | 439 |
Gloria | 09/16/1985 | 10/02/1985 | 145 | 900M | 14 |
Bob | 08/16/1991 | 08/29/1991 | 115 | 1.5B | 15 |
Labor Day | 08/29/1935 | 09/10/1935 | 185 | 100M | 423 |
Easy | 09/01/1950 | 09/09/1950 | 125 | 3.3M | 2 |
King | 10/13/1950 | 10/20/1950 | 130 | 32M | 11 |
FLORENCE | 09/23/1953 | 09/26/1953 | 115 | 200K | 0 |
Flossy | 09/21/1956 | 09/30/1956 | 90 | 24.9M | 15 |
Cleo | 08/21/1964 | 09/05/1964 | 155 | 187M | 156 |
Dora | 08/28/1964 | 09/14/1964 | 130 | 280M | 5 |
Isbell | 10/08/1964 | 10/19/1964 | 125 | 30M | 7 |
Betsy | 08/27/1965 | 09/13/1965 | 155 | 1.43B | 81 |
Alma | 06/04/1966 | 06/14/1966 | 125 | 210.1M | 93 |
Inez | 09/21/1966 | 10/11/1966 | 150 | 226.5M | 756 |
Gladys | 10/13/1968 | 10/21/1968 | 85 | 18.7M | 8 |
Agnes | 06/14/1972 | 07/06/1972 | 85 | 2.1B | 128 |
Kate | 11/15/1985 | 11/23/1985 | 120 | 700M | 15 |
Floyd | 10/09/1987 | 10/13/1987 | 75 | 500K | 1 |
Andrew | 08/16/1992 | 08/29/1992 | 175 | 27.3B | 65 |
Erin | 07/31/1995 | 08/06/1995 | 100 | 700M | 6 |
Earl | 08/31/1998 | 09/08/1998 | 100 | 79M | 3 |
"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"page = BeautifulSoup(b.page_source, \"html.parser\")\n",
"page.find(\"table\")"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"b.close()"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [],
"source": [
"options = Options()\n",
"#options.headless = True\n",
"b = webdriver.Chrome(options=options)"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {},
"outputs": [],
"source": [
"# page3.html\n",
"b.get(\"https://tyler.caraza-harter.com/cs320/s20/materials/lec-19/page3.html\")"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pw = b.find_element_by_id(\"password\")\n",
"pw"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [],
"source": [
"pw.clear()"
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {},
"outputs": [],
"source": [
"pw.send_keys(\"fido\")"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {},
"outputs": [],
"source": [
"b.find_element_by_id(\"login_btn\").click()\n"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"name | formed | dissipated | mph | damage | deaths |
Baker | 08/18/1950 | 09/01/1950 | 105 | 2.55M | 38 |
Camille | 08/14/1969 | 08/22/1969 | 175 | 1.42B | 259 |
Eloise | 09/13/1975 | 09/24/1975 | 125 | 560M | 80 |
Frederic | 08/29/1979 | 09/15/1979 | 130 | 1.77B | 12 |
Elena | 08/28/1985 | 09/04/1985 | 125 | 1.3B | 9 |
Opal | 09/27/1995 | 10/06/1995 | 150 | 4.7B | 63 |
Danny | 07/16/1997 | 07/27/1997 | 80 | 100M | 4 |
Ivan | 09/02/2004 | 09/25/2004 | 165 | 26.1B | 92 |
Dennis | 07/04/2005 | 07/18/2005 | 150 | 3.98B | 76 |
Katrina | 08/23/2005 | 08/31/2005 | 175 | 125B | 1245 |
Carol | 08/25/1954 | 09/01/1954 | 115 | 462M | 72 |
Donna | 08/29/1960 | 09/14/1960 | 145 | 980M | 439 |
Gloria | 09/16/1985 | 10/02/1985 | 145 | 900M | 14 |
Bob | 08/16/1991 | 08/29/1991 | 115 | 1.5B | 15 |
Labor Day | 08/29/1935 | 09/10/1935 | 185 | 100M | 423 |
Easy | 09/01/1950 | 09/09/1950 | 125 | 3.3M | 2 |
King | 10/13/1950 | 10/20/1950 | 130 | 32M | 11 |
FLORENCE | 09/23/1953 | 09/26/1953 | 115 | 200K | 0 |
Flossy | 09/21/1956 | 09/30/1956 | 90 | 24.9M | 15 |
Cleo | 08/21/1964 | 09/05/1964 | 155 | 187M | 156 |
Dora | 08/28/1964 | 09/14/1964 | 130 | 280M | 5 |
Isbell | 10/08/1964 | 10/19/1964 | 125 | 30M | 7 |
Betsy | 08/27/1965 | 09/13/1965 | 155 | 1.43B | 81 |
Alma | 06/04/1966 | 06/14/1966 | 125 | 210.1M | 93 |
Inez | 09/21/1966 | 10/11/1966 | 150 | 226.5M | 756 |
Gladys | 10/13/1968 | 10/21/1968 | 85 | 18.7M | 8 |
Agnes | 06/14/1972 | 07/06/1972 | 85 | 2.1B | 128 |
Kate | 11/15/1985 | 11/23/1985 | 120 | 700M | 15 |
Floyd | 10/09/1987 | 10/13/1987 | 75 | 500K | 1 |
Andrew | 08/16/1992 | 08/29/1992 | 175 | 27.3B | 65 |
Erin | 07/31/1995 | 08/06/1995 | 100 | 700M | 6 |
Earl | 08/31/1998 | 09/08/1998 | 100 | 79M | 3 |
"
]
},
"execution_count": 87,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"page = BeautifulSoup(b.page_source, \"html.parser\")\n",
"page.find(\"table\")"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [],
"source": [
"b.close()"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {},
"outputs": [],
"source": [
"options = Options()\n",
"#options.headless = True\n",
"b = webdriver.Chrome(options=options)"
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {},
"outputs": [],
"source": [
"# page4.html\n",
"b.get(\"https://tyler.caraza-harter.com/cs320/s20/materials/lec-19/page4.html\")"
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {},
"outputs": [],
"source": [
"year_box = b.find_element_by_id(\"year\")"
]
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {},
"outputs": [],
"source": [
"search_btn = b.find_element_by_id(\"search_btn\")"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def year_count(year):\n",
" year_box.clear()\n",
" year_box.send_keys(str(year))\n",
" search_btn.click()\n",
" trs = b.find_elements_by_tag_name(\"tr\")\n",
" return len(trs) - 1\n",
"year_count(1957)"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {},
"outputs": [],
"source": [
"year_series = pd.Series()\n",
"\n",
"for year in range(1950, 2021):\n",
" year_series.loc[year] = year_count(year)"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {},
"outputs": [],
"source": [
"b.close()"
]
},
{
"cell_type": "code",
"execution_count": 128,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1950 3\n",
"1951 0\n",
"1952 1\n",
"1953 2\n",
"1954 2\n",
"dtype: int64"
]
},
"execution_count": 128,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"year_series.head()"
]
},
{
"cell_type": "code",
"execution_count": 131,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib\n",
"matplotlib.rcParams[\"font.size\"] = 16"
]
},
{
"cell_type": "code",
"execution_count": 136,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"