{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Part 3: Parse HTML Code With Beautiful Soup\n",
"\n",
"- Find Elements by ID\n",
"- Find Elements by HTML Class Name\n",
"- Extract Text From HTML Elements\n",
"- Extract Attributes From HTML Elements"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# scrape the site\n",
"import requests\n",
"\n",
"url = \"https://www.indeed.com/jobs?q=python&l=new+york\"\n",
"response = requests.get(url)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"After scraping the HTML content, you continue working to pick out the info you need."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from bs4 import BeautifulSoup"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"soup = BeautifulSoup(response.content)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true,
"jupyter": {
"outputs_hidden": true
}
},
"outputs": [
{
"data": {
"text/plain": [
"\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",
"Python Jobs, Employment in New York State | Indeed.com \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",
"
Date Posted Remote Job Type Location Company Experience Level \n",
"
\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
" \n",
" \n",
" \n",
"\n",
"\n",
"\n",
"\n",
"\n",
"
\n",
"\n",
"\n",
"
\n",
"\n",
"
\n",
" python jobs in New York State \n",
"
\n",
"
Sort by: \n",
"
relevance -\n",
"date \n",
"
\n",
"
\n",
"
\n",
" Page 1 of 3,401 jobs
\n",
"
\n",
"
\n",
"
\n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"BreachLock \n",
"
\n",
"
\n",
"
Florida, NY \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"BreachLocks’s modern SaaS-based approach redefines the old school and time-consuming pen test model into fast and comprehensive security as service. \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"Vee Search \n",
"
\n",
"
\n",
"
New York State \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"You will help drive business results through building a robust data engine to build business-critical, scalable, and robust data pipelines and intuitive data… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"Media Storm, LLC \n",
"
\n",
"\n",
"\n",
"3.3\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
New York, NY 10013 (SoHo area) \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"The candidate will join the growing R&D team to develop software and technologies to enabled media activation, optimization, and measurement products. \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"Yewno \n",
"
\n",
"
\n",
"
New York, NY 10020 (Midtown area) \n",
"
\n",
"
\n",
"
\n",
"Perform research and identify unique alternative datasets relevant to financial services applications; perform data validation further assessing validity,… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"Thasos Group \n",
"
\n",
"
\n",
"
New York, NY 10003 (Greenwich Village area) \n",
"
\n",
"
\n",
"
\n",
"The Data Technician role is an entry-level position suitable for someone looking to break into the startup/big data world and gain experience working with top… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"Hudson River Trading \n",
"
\n",
"\n",
"\n",
"3.5\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
New York, NY 10005 (Financial District area) \n",
"
\n",
"
\n",
"
\n",
"We are looking for an up-and-coming developer who loves coding, enjoys taking on challenging problems, and wants to make an immediate and tangible impact. \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"Codecademy \n",
"
\n",
"\n",
"\n",
"4.2\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
New York State \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"The Subject Matter Expert provides the Codecademy Curriculum team with specialized, up-to-date, nuanced insight into the field of database engineering and how… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"Codecademy \n",
"
\n",
"\n",
"\n",
"4.2\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
New York State \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"The Subject Matter Expert provides the Codecademy Curriculum team with specialized, up-to-date, nuanced insight into the field of database engineering and how… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"Plectica \n",
"
\n",
"
\n",
"
New York, NY \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"Systems Thinking is an increasingly popular method of analysis and problem solving, widely applicable in industry, government, not-for-profit, education,… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"Bloomberg \n",
"
\n",
"\n",
"\n",
"3.9\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
New York, NY \n",
"
\n",
"
\n",
"
\n",
"We partner closely with our clients, taking time to understand their unique businesses and individual data and technology needs. \n",
"NET, Java, C++ and Python. \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"\n",
"
\n",
"\n",
"\n",
" \n",
"\n",
"\n",
"
\n",
"
\n",
" Be the first to see new python jobs in new york \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"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"soup"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What a soup!!! 🍜 Let's be picky and thin it out."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Find Elements By ID\n",
"\n",
"`id` attributes uniquely identify HTML elements. Let's find one we need with Developer Tools!"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"results = soup.find(id='resultsCol')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true,
"jupyter": {
"outputs_hidden": true
}
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"
\n",
"\n",
"\n",
"
\n",
"\n",
"
\n",
" python jobs in New York State \n",
"
\n",
"
Sort by: \n",
"
relevance -\n",
"date \n",
"
\n",
"
\n",
"
\n",
" Page 1 of 3,401 jobs
\n",
"
\n",
"
\n",
"
\n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"BreachLock \n",
"
\n",
"
\n",
"
Florida, NY \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"BreachLocks’s modern SaaS-based approach redefines the old school and time-consuming pen test model into fast and comprehensive security as service. \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"Vee Search \n",
"
\n",
"
\n",
"
New York State \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"You will help drive business results through building a robust data engine to build business-critical, scalable, and robust data pipelines and intuitive data… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"Media Storm, LLC \n",
"
\n",
"\n",
"\n",
"3.3\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
New York, NY 10013 (SoHo area) \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"The candidate will join the growing R&D team to develop software and technologies to enabled media activation, optimization, and measurement products. \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"Yewno \n",
"
\n",
"
\n",
"
New York, NY 10020 (Midtown area) \n",
"
\n",
"
\n",
"
\n",
"Perform research and identify unique alternative datasets relevant to financial services applications; perform data validation further assessing validity,… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"Thasos Group \n",
"
\n",
"
\n",
"
New York, NY 10003 (Greenwich Village area) \n",
"
\n",
"
\n",
"
\n",
"The Data Technician role is an entry-level position suitable for someone looking to break into the startup/big data world and gain experience working with top… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"Hudson River Trading \n",
"
\n",
"\n",
"\n",
"3.5\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
New York, NY 10005 (Financial District area) \n",
"
\n",
"
\n",
"
\n",
"We are looking for an up-and-coming developer who loves coding, enjoys taking on challenging problems, and wants to make an immediate and tangible impact. \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"Codecademy \n",
"
\n",
"\n",
"\n",
"4.2\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
New York State \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"The Subject Matter Expert provides the Codecademy Curriculum team with specialized, up-to-date, nuanced insight into the field of database engineering and how… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"Codecademy \n",
"
\n",
"\n",
"\n",
"4.2\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
New York State \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"The Subject Matter Expert provides the Codecademy Curriculum team with specialized, up-to-date, nuanced insight into the field of database engineering and how… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"Plectica \n",
"
\n",
"
\n",
"
New York, NY \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"Systems Thinking is an increasingly popular method of analysis and problem solving, widely applicable in industry, government, not-for-profit, education,… \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"Bloomberg \n",
"
\n",
"\n",
"\n",
"3.9\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
New York, NY \n",
"
\n",
"
\n",
"
\n",
"We partner closely with our clients, taking time to understand their unique businesses and individual data and technology needs. \n",
"NET, Java, C++ and Python. \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"\n",
"\n",
" "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Better, but let's drill down some more"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Find Elements By Class Name\n",
"\n",
"The job postings all have the same HTML `class`. Let's find all that are on this page."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"jobs = results.find_all('div', class_='result')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(jobs) # how many?"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"BreachLock \n",
"
\n",
"
\n",
"
Florida, NY \n",
"
• \n",
"
Remote work available \n",
"
\n",
"
\n",
"
\n",
"BreachLocks’s modern SaaS-based approach redefines the old school and time-consuming pen test model into fast and comprehensive security as service. \n",
" \n",
"\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"jobs[0] # let's check out just one of them"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Extract Text From HTML Elements\n",
"\n",
"Next, let's target a specific text from the site and extract it from the surrounding HTML"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"title = jobs[0].find('h2')\n",
"title"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"Penetration Testing Trainee (Remote USA) "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"title_link = title.find('a')\n",
"title_link"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'\\nPenetration Testing Trainee (Remote USA)'"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"link_text = title_link.text\n",
"link_text"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Penetration Testing Trainee (Remote USA)'"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# clean it up\n",
"link_text.strip()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And now for all jobs, in a concise list comprehension:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"job_titles = [job.find('h2').find('a').text.strip() for job in jobs]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['Penetration Testing Trainee (Remote USA)',\n",
" 'Data Engineer Summer Internship (REMOTE)',\n",
" 'Python & JavaScript Developer',\n",
" 'Alternative Data Research Analyst',\n",
" 'Data Technician (Full- or Part-Time)',\n",
" 'Python Developer - Compliance',\n",
" 'Content Contributor: Deep Learning with TensorFlow',\n",
" 'Subject Matter Expert: Deep Learning with TensorFlow',\n",
" 'Junior Front End / Full Stack Software Engineer',\n",
" '2020 Enterprise Data Accelerated Talent Entry Program']"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"job_titles"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Extract Attributes From HTML Elements\n",
"\n",
"Apart from text content, HTML attributes can contain important information you want to parse, for example the URL where a link points to. Let's learn how to extract them."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"Penetration Testing Trainee (Remote USA) "
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"title_link"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'/rc/clk?jk=487b30db63184515&fccid=bf0600f0f252b45b&vjs=3'"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"title_link['href']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That's a **relative link**. In order to be able to access the resource, you will need to assemble the absolute URL."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'https://www.indeed.com/rc/clk?jk=487b30db63184515&fccid=bf0600f0f252b45b&vjs=3'"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"base_url = \"https://www.indeed.com\"\n",
"job_url = base_url + title_link['href']\n",
"job_url"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With this, you are now able to access the specifc job posting, for example by using `requests` again:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"job_site = requests.get(job_url)\n",
"job_soup = BeautifulSoup(job_site.content)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true,
"jupyter": {
"outputs_hidden": true
}
},
"outputs": [
{
"data": {
"text/plain": [
"'\\n\\nPenetration Testing Trainee (Remote USA) - Florida, NY - Indeed.com\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nFind jobsCompany reviewsFind salariesUpload your resumeSign inEmployers / Post Job\\n\\nWhatWhereFind JobsAdvanced Job SearchPenetration Testing Trainee (Remote USA)BreachLock-Florida, NYRemoteOtherWho are we?\\nBreachLock is a security startup that offers a unique SaaS platform delivering on-demand, continuous, and scalable security testing suitable for modern cloud and DevOps powered businesses. The BreachLock platform leverages both human-powered penetration testing and AI-powered automated scans to create a powerful and easy to use solution that delivers continuous and on-demand vulnerability management. BreachLocks’s modern SaaS-based approach redefines the old school and time-consuming pen test model into fast and comprehensive security as service. As a result, CIO’s and CISO’s get a single pane view into their application and network security posture. The BreachLock platform facilitates collaboration between your DevOps and BreachLock security researchers, empowering them to fix security gaps at the speed of business.\\nSome of our achievements include:\\nOne of the fastest-growing SaaS companies in Cyber Security\\nCyber Security Innovator for Analysis and Testing category 2019 – SC Magazine\\nTop 10 Vulnerability Management Solution for 2019 – Enterprise Security Magazine\\nMost promising Cyber Security startup 2019 – CIO Review\\nCyber Security Innovator for the year 2019 – Mirror Review\\nTop 10 Vulnerability Assessment vendor in Gartner Peerinsights\\nWho you are\\nYou want to work with global leaders in Cyber Security\\nHave a passion for various disciplines of Cyber Security\\nHave track record that proves you have invested time in research and learning about security via:\\nWriting blogs, articles, research papers\\nBug bounty\\nAttended training related to Cyber Security\\nHave certifications like CEH or ISO 27001\\nHave developed projects using AI, Machine Learning or Machine Learning technologies\\nAbout the opportunity\\nFunctions you will perform may include one or more of the following:\\nTechnical writing\\nSecurity analysis\\nDocumentation\\nManual Testing of inhouse products\\nSecurity Research\\nCompetitor analysis and Testing of various security products\\nPenetration Testing\\nVulnerability scanning\\nPython development\\nAI, Machine Learning research\\nYou are based in the United States and can work without additional sponsorship/VISA\\nThis is a telecommute and remote position\\nYou work on a flexible schedule and manage your deliverables\\nYou have a choice to work on a three to five days per week schedule\\nYou get support from our security experts to learn our processes and perform your day to day activities\\nYou will get an opportunity to test your limits in this promising startup\\nYou will be working alongside international experts\\nIndustry-standard financial benefits\\nStrong career prospects in an early-stage startup\\nYou get a chance to continue as an employee based on your performance as a traineeBreachLock - 30+ days ago - save jobreport job - original jobApply NowApply On Company SiteSave this jobShare this jobJobs at BreachLock in Florida, NYCompany InfoFollowGet job updates from BreachLockLet employers find youThousands of employers search for candidates on IndeedUpload your resumeHiring LabCareer AdviceBrowse JobsBrowse CompaniesSalariesFind CertificationsIndeed EventsWork at IndeedCountriesAboutHelp Center© 2020 IndeedDo Not Sell My Personal InformationPrivacy CenterCookies, Privacy and TermsLet Employers Find YouUpload Your Resume\\n\\n\\n\\n\\n\\n\\n'"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"job_soup.text"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You could set up a pipeline that follows the job posting details links and fetches the more detailed job description from there. You could set up some parameters by which to highlight or discard listings that contain certain key phrases.\n",
"\n",
"There's a lot you can do to customize this automated job search script to your own specific interests."
]
}
],
"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.8.0"
}
},
"nbformat": 4,
"nbformat_minor": 4
}