BeautifulSoup 1: scraping my page

BeautifulSoup is a powerful Python library used for pulling data out of HTML documents. In this notebook we will use the requests library to get the HTML document from my website and then use BeautifulSoup to get data from that document. Unlike regular expressions, which deal all HTML document as a string/text, BeautifulSoup distinguishes between simple/plain text and HTML tags/attributes which is very helpful for scraping.

If you do not have BeautifulSoup installed, then open a completely new command prompt (black window) and type the following command:

pip install beautifulsoup

Okay, let's start from importing abovementioned libraries and selecting the url to scrape.


In [1]:
import requests
# import everything from BeautifulSoup
from BeautifulSoup import *

In [2]:
url = "https://hrantdavtyan.github.io/"

Once we have the libraries imported and the url selected, we should use the get() function from the requests library to get the website content as a response and then, convert it to text.


In [4]:
response = requests.get(url)
my_page = response.text
print(response)
type(my_page)


<Response [200]>
Out[4]:
unicode

In order to be able to initiate several function available from BeautifulSoup library, we need to pass my_page as an argument to BeautifulSoup() function. The content will still remain the same, yet the object type will change which will let us to use some nice methods.


In [5]:
soup = BeautifulSoup(my_page)

In [6]:
type(soup)


Out[6]:
BeautifulSoup.BeautifulSoup

In [7]:
print(soup)


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Hrant Davtyan</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<link rel="stylesheet" type="text/css" href="css/reset.css" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<link rel="stylesheet" type="text/css" href="css/fancybox.css" />
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,300,800,700,400italic|PT+Serif:400,400italic" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.easytabs.min.js"></script>
<script type="text/javascript" src="js/respond.min.js"></script>
<script type="text/javascript" src="js/jquery.easytabs.min.js"></script>
<script type="text/javascript" src="js/jquery.adipoli.min.js"></script>
<script type="text/javascript" src="js/jquery.fancybox-1.3.4.pack.js"></script>
<script type="text/javascript" src="js/jquery.isotope.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="js/jquery.gmap.min.js"></script>
<script type="text/javascript" src="js/custom.js"></script>
</head>
<body>
<!-- Container -->
<div id="container">
<!-- Top -->
<div class="top">
<!-- Logo -->
<div id="logo">
<h2>HRANT DAVTYAN</h2>
<h4>BUSINESS ANALYST &amp; DATA SCIENTIST</h4>
</div>
<!-- /Logo -->
<!-- Social Icons -->
<ul class="socialicons">
<li><a href="#" class="social-text">SOCIAL PROFILES</a></li>
<li><a href="https://www.facebook.com/HrantDavtyan" class="social-facebook"></a></li>
<li><a href="https://www.linkedin.com/in/hrantdavtyan" class="social-in"></a></li>
</ul>
<!-- /Social Icons -->
</div>
<!-- /Top -->
<!-- Content -->
<div id="content">
<!-- Profile -->
<div id="profile">
<!-- About section -->
<div class="about">
<div class="photo-inner"><img src="images/photo.jpg" height="186" width="153" /></div>
<h1>HRANT DAVTYAN</h1>
<h3>Business Analyst &amp; Data Scientist</h3>
<p>I am a Data Enthusiast, teaching Business Analytics and providing consultancy on Statistics, Economics and IT. Feel free to take a look around my webpage.</p>
</div>
<!-- /About section -->
<!-- Personal info section -->
<ul class="personal-info">
<li><label>Name</label><span>Hrant Davtyan</span></li>
<li><label>Date of birth</label><span>June 16, 1992</span></li>
<li><label>Address</label><span>Yerevan 0033, Armenia</span></li>
<li><label>Email</label><span>hdavtyan@aua.am</span></li>
<li><label>Phone</label><span>+374 99 02-06-62</span></li>
<li><label>Website</label><span>HrantDavtyan.GitHub.io</span></li>
</ul>
<!-- /Personal info section -->
</div>
<!-- /Profile -->
<!-- Menu -->
<div class="menu">
<ul class="tabs">
<li><a href="#profile" class="tab-profile">Profile</a></li>
<li><a href="#resume" class="tab-resume">Resume</a></li>
<li><a href="#portfolio" class="tab-portfolio">Portfolio</a></li>
<li><a href="#contact" class="tab-contact">Contact</a></li>
</ul>
</div>
<!-- /Menu -->
<!-- Resume -->
<div id="resume">
<div class="timeline-section">
<!-- Timeline for Teaching Experience  -->
<h3 class="main-heading"><span>Teaching Experience</span></h3>
<ul class="timeline">
<li>
<div class="timelineUnit">
<h4>Adjunct Lecturer<span class="timelineDate">2016 - Present</span></h4>
<h5><a href="http://aua.am/">American University of Armenia (AUA)</a></h5>
<p align="justify">I achieved an average feedback score of 4.7 (out of 5) teaching Business Analytics,
									Business Mathematics and Macroeconomics courses to overall 111 students.</p>
</div>
</li>
<li>
<div class="timelineUnit">
<h4>Instructor of Predictive Modelling<span class="timelineDate">2015 - 2016</span></h4>
<h5><a href="http://isifa.am/en/ifa-dfi/">French-German University</a></h5>
<p align="justify">Students with no prior knowledge of programming successfully learned Python, R, Stata and IBM SPSS
									and applied their skills by participating to a Kaggle competition as a final course project</p>
</div>
</li>
<li>
<div class="timelineUnit">
<h4>Teaching Fellow<span class="timelineDate">2014 - 2015</span></h4>
<h5><a href="https://www.cerge-ei.cz/">Cerge-EI</a></h5>
<p align="justify">I was awarded a one year fellowship to teach modern economics at local universities.
									During the fellowship tenure I taught around 230 students at 3 different universities.</p>
</div>
</li>
<div class="clear"></div>
</ul>
<!-- /Timeline for Teaching Experience  -->
<!-- Timeline for Professional Experience  -->
<h3 class="main-heading"><span>Professional Experience</span></h3>
<ul class="timeline">
<li>
<div class="timelineUnit">
<h4>Expert on Statistics, Economics and IT<span class="timelineDate">2015 - Present</span></h4>
<h5><a href="http://www.fao.org/armenia/en/">United Nations Food and Agriculture Organization (UN FAO)</a></h5>
<p align="justify">Developed a software (using R, HTML, CSS) for Post Disaster Needs Assessment.
									Consulted contracted companies regarding Ministry staff appraisal and training needs assessment.
									Consulted National Statistical Service regarding Census (and post census) activities</p>
</div>
</li>
<li>
<div class="timelineUnit">
<h4>Senior Business Analyst<span class="timelineDate">2015 - Present</span></h4>
<h5><a href="http://www.metric.am/">METRIC</a></h5>
<p align="justify">Led several major Data Science projects, participated in different quantitative and qualitative surveys
									provided consulting to local and international, private and public organizations.</p>
</div>
</li>
<li>
<div class="timelineUnit">
<h4>Business Analyst<span class="timelineDate">2014 - 2015</span></h4>
<h5><a href="http://ahpc.am/?lang=en">Armenian Harvest Promotion Center</a></h5>
<p align="justify">Developed business proposals applying financial and operations analytics techniques. The main tool used were spreadsheets and Microsoft Power tools</p>
</div>
</li>
<div class="clear"></div>
</ul>
<!-- /Timeline for Professional Experience  -->
<!-- Timeline for Education  -->
<h3 class="main-heading"><span>Education</span></h3>
<ul class="timeline">
<li>
<div class="timelineUnit">
<h4>MSc in Economic Policy<span class="timelineDate">2012 - 2013</span></h4>
<h5><a href="http://www.ucl.ac.uk/">University College London (UCL)</a></h5>
<p>Thesis: Vulnerability to manipulation for positional voting rules</p>
</div>
</li>
<li>
<div class="timelineUnit">
<h4>MA in Economics<span class="timelineDate">2012 - 2014</span></h4>
<h5><a href="http://iset.tsu.ge/">International School of Economics (ISET)</a></h5>
<p>Thesis: The effect of correlation neglect on polarization</p>
</div>
</li>
<div class="clear"></div>
</ul>
<!-- /Timeline for Education  -->
</div>
<div class="skills-section">
<!-- Skills -->
<h3 class="main-heading"><span>Analytics</span></h3>
<ul class="skills">
<li>
<h4>Customers</h4>
<span class="rat6"></span>
</li>
<li>
<h4>HR/People</h4>
<span class="rat4"></span>
</li>
<li>
<h4>Operations</h4>
<span class="rat5"></span>
</li>
<li>
<h4>FInance</h4>
<span class="rat4"></span>
</li>
</ul>
<h3 class="main-heading"><span>Programming</span></h3>
<ul class="skills">
<li>
<h4>Python</h4>
<span class="rat6"></span>
</li>
<li>
<h4>HTML/CSS</h4>
<span class="rat3"></span>
</li>
<li>
<h4>R</h4>
<span class="rat6"></span>
</li>
<li>
<h4>SQL/T-SQL</h4>
<span class="rat3"></span>
</li>
<li>
<h4>Markdown</h4>
<span class="rat7"></span>
</li>
</ul>
<h3 class="main-heading"><span>Languages</span></h3>
<ul class="skills">
<li>
<h4>English</h4>
<span class="rat7"></span>
</li>
<li>
<h4>Russian</h4>
<span class="rat7"></span>
</li>
<li>
<h4>Polish</h4>
<span class="rat4"></span>
</li>
</ul>
<h3 class="main-heading"><span>Software</span></h3>
<ul class="skills">
<li>
<h4>MS Excel/Access</h4>
<span class="rat7"></span>
</li>
<li>
<h4>STATA/SPSS</h4>
<span class="rat7"></span>
</li>
<li>
<h4>KNIME/Rapidminer</h4>
<span class="rat4"></span>
</li>
</ul>
<!-- /Skills -->
</div>
</div>
<!-- /Resume -->
<!-- Portfolio -->
<div id="portfolio">
<ul id="portfolio-filter">
<li><a href="" class="current" data-filter="*">All</a></li>
<li><a href="" data-filter=".statistics">Statistics</a></li>
<li><a href="" data-filter=".programming">Programming</a></li>
<li><a href="" data-filter=".teaching">Teaching</a></li>
<li><a href="" data-filter=".survey">Survey</a></li>
<li><a href="" data-filter=".other">Other</a></li>
</ul>
<div class="extra-text">Some of the projects I'm proud with</div>
<ul id="portfolio-list">
<li class="teaching">
<a href="https://github.com/HrantDavtyan/HrantDavtyan.github.io\teaching\jdocs\Business Analytics\html\index.html" rel="portfolio" target="_new">
<img src="portfolio/ba.png" alt="" />
<h2 class="title">Business Analytics</h2>
<span class="categorie">Teaching</span>
</a>
</li>
<li class="statistics programming">
<a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" title="Damage and Loss calculator" rel="portfolio" class="folio">
<img src="portfolio/r.png" alt="" />
<h2 class="title">PDNA web application</h2>
<span class="categorie">Programming / Statistics</span>
</a>
</li>
<li class="statistics">
<a href="http://www.armstat.am/en/?nid=661" rel="portfolio" class="folio iframe">
<img src="portfolio/census.jpg" alt="" />
<h2 class="title">General Agriculture Census</h2>
<span class="categorie">Statistics</span>
</a>
</li>
<li class="other survey">
<a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" rel="portfolio" class="folio">
<img src="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" alt="" />
<h2 class="title">Data Science in Armenia</h2>
<span class="categorie">Survey / Other</span>
</a>
</li>
<li class="other">
<a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" rel="portfolio" class="folio">
<img src="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" alt="" />
<h2 class="title">MCMC</h2>
<span class="categorie">Other</span>
</a>
</li>
<li class="statistics survey">
<a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" rel="portfolio" class="folio">
<img src="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" alt="" />
<h2 class="title">Staff apprasial analysis</h2>
<span class="categorie">Statistics / Survey</span>
</a>
</li>
<li class="programming">
<a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" rel="portfolio" class="folio">
<img src="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" alt="" />
<h2 class="title">Twitter bot</h2>
<span class="categorie">Programming</span>
</a>
</li>
<li class="teaching">
<a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" rel="portfolio" class="folio">
<img src="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" alt="" />
<h2 class="title">Macroeconomics</h2>
<span class="categorie">Teaching</span>
</a>
</li>
</ul>
</div>
<!-- /Portfolio -->
<!-- Contact -->
<div id="contact">
<div id="map"></div>
<!-- Contact Info -->
<div class="contact-info">
<h3 class="main-heading"><span>Contact info</span></h3>
<ul>
<li>223W AUA, 40 Baghramyan Ave, Yerevan 0033 Armenia<br /><br /></li>
<li>Email: hdavtyan@aua.am</li>
<li>Phone: +374 99 02-06-62</li>
<li>Website: HrantDavtyan.GitHub.io</li>
</ul>
</div>
<!-- /Contact Info -->
<!-- Contact Form -->
<div class="contact-form">
<h3 class="main-heading"><span>Let's keep in touch</span></h3>
<div id="contact-status"></div>
<form action="" id="contactform">
<p>
<label for="name">Your Name</label>
<input type="text" name="name" class="input" />
</p>
<p>
<label for="email">Your Email</label>
<input type="text" name="email" class="input" />
</p>
<p>
<label for="message">Your Message</label>
<textarea name="message" cols="88" rows="6" class="textarea"></textarea>
</p>
<input type="submit" name="submit" value="Send your message" class="submit" />
</form>
</div>
<!-- /Contact Form -->
</div>
<!-- /contact -->
</div>
<!-- /Content -->
<!-- Footer -->
<div class="footer">
<div class="copyright">Copyright © 2017 Hrant Davtyan</div>
</div>
<!-- /Footer -->
</div>
<!-- /Container -->
</body>
</html>

Fine. Let's now try to find all the a tags from my page.


In [8]:
a_tags = soup.findAll('a')

In [9]:
type(a_tags)


Out[9]:
list

In [10]:
len(a_tags)


Out[10]:
29

As you can see above, we received a list as an output with 29 elements. The 29 elements are the 29 a tags from my website. We can print the outcome to see them.


In [11]:
print(a_tags)


[<a href="#" class="social-text">SOCIAL PROFILES</a>, <a href="https://www.facebook.com/HrantDavtyan" class="social-facebook"></a>, <a href="https://www.linkedin.com/in/hrantdavtyan" class="social-in"></a>, <a href="#profile" class="tab-profile">Profile</a>, <a href="#resume" class="tab-resume">Resume</a>, <a href="#portfolio" class="tab-portfolio">Portfolio</a>, <a href="#contact" class="tab-contact">Contact</a>, <a href="http://aua.am/">American University of Armenia (AUA)</a>, <a href="http://isifa.am/en/ifa-dfi/">French-German University</a>, <a href="https://www.cerge-ei.cz/">Cerge-EI</a>, <a href="http://www.fao.org/armenia/en/">United Nations Food and Agriculture Organization (UN FAO)</a>, <a href="http://www.metric.am/">METRIC</a>, <a href="http://ahpc.am/?lang=en">Armenian Harvest Promotion Center</a>, <a href="http://www.ucl.ac.uk/">University College London (UCL)</a>, <a href="http://iset.tsu.ge/">International School of Economics (ISET)</a>, <a href="" class="current" data-filter="*">All</a>, <a href="" data-filter=".statistics">Statistics</a>, <a href="" data-filter=".programming">Programming</a>, <a href="" data-filter=".teaching">Teaching</a>, <a href="" data-filter=".survey">Survey</a>, <a href="" data-filter=".other">Other</a>, <a href="https://github.com/HrantDavtyan/HrantDavtyan.github.io\teaching\jdocs\Business Analytics\html\index.html" rel="portfolio" target="_new">
<img src="portfolio/ba.png" alt="" />
<h2 class="title">Business Analytics</h2>
<span class="categorie">Teaching</span>
</a>, <a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" title="Damage and Loss calculator" rel="portfolio" class="folio">
<img src="portfolio/r.png" alt="" />
<h2 class="title">PDNA web application</h2>
<span class="categorie">Programming / Statistics</span>
</a>, <a href="http://www.armstat.am/en/?nid=661" rel="portfolio" class="folio iframe">
<img src="portfolio/census.jpg" alt="" />
<h2 class="title">General Agriculture Census</h2>
<span class="categorie">Statistics</span>
</a>, <a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" rel="portfolio" class="folio">
<img src="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" alt="" />
<h2 class="title">Data Science in Armenia</h2>
<span class="categorie">Survey / Other</span>
</a>, <a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" rel="portfolio" class="folio">
<img src="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" alt="" />
<h2 class="title">MCMC</h2>
<span class="categorie">Other</span>
</a>, <a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" rel="portfolio" class="folio">
<img src="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" alt="" />
<h2 class="title">Staff apprasial analysis</h2>
<span class="categorie">Statistics / Survey</span>
</a>, <a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" rel="portfolio" class="folio">
<img src="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" alt="" />
<h2 class="title">Twitter bot</h2>
<span class="categorie">Programming</span>
</a>, <a href="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" rel="portfolio" class="folio">
<img src="http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png" alt="" />
<h2 class="title">Macroeconomics</h2>
<span class="categorie">Teaching</span>
</a>]

If you were interested in finding only the very first a tag, then the find() function could be useful instead of findAll(). This function already strings the a tag and its content as a string, rather than a list.


In [12]:
a_tag = soup.find('a')
type(a_tag)


Out[12]:
BeautifulSoup.Tag

In [13]:
print(a_tag)


<a href="#" class="social-text">SOCIAL PROFILES</a>

As you can see above, although this is just s string, its type is a BeautifulSoup.Tag which will helps us to use some other methods on it. For example, we can get the link inside the a tag (href) by using a get() function. As the links are always inside a href attribute, we will try to get the value of href as follows:


In [14]:
print(a_tag.get('href'))


#

If we want to get links from all a_tags (the latter was a list), then we should iterate over the list and get the href value from each element of the list as follows:


In [15]:
for i in a_tags:
    print(i.get("href"))


#
https://www.facebook.com/HrantDavtyan
https://www.linkedin.com/in/hrantdavtyan
#profile
#resume
#portfolio
#contact
http://aua.am/
http://isifa.am/en/ifa-dfi/
https://www.cerge-ei.cz/
http://www.fao.org/armenia/en/
http://www.metric.am/
http://ahpc.am/?lang=en
http://www.ucl.ac.uk/
http://iset.tsu.ge/






https://github.com/HrantDavtyan/HrantDavtyan.github.io\teaching\jdocs\Business Analytics\html\index.html
http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png
http://www.armstat.am/en/?nid=661
http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png
http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png
http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png
http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png
http://clearwaterbeachassoc.com/wp-content/uploads/2016/01/Under-construction.png

Similarly, one can get all the p_tags from my page by just searching for All p-s as follows:


In [16]:
p_tags = soup.findAll('p')
print(p_tags)


[<p>I am a Data Enthusiast, teaching Business Analytics and providing consultancy on Statistics, Economics and IT. Feel free to take a look around my webpage.</p>, <p align="justify">I achieved an average feedback score of 4.7 (out of 5) teaching Business Analytics,
									Business Mathematics and Macroeconomics courses to overall 111 students.</p>, <p align="justify">Students with no prior knowledge of programming successfully learned Python, R, Stata and IBM SPSS
									and applied their skills by participating to a Kaggle competition as a final course project</p>, <p align="justify">I was awarded a one year fellowship to teach modern economics at local universities.
									During the fellowship tenure I taught around 230 students at 3 different universities.</p>, <p align="justify">Developed a software (using R, HTML, CSS) for Post Disaster Needs Assessment.
									Consulted contracted companies regarding Ministry staff appraisal and training needs assessment.
									Consulted National Statistical Service regarding Census (and post census) activities</p>, <p align="justify">Led several major Data Science projects, participated in different quantitative and qualitative surveys
									provided consulting to local and international, private and public organizations.</p>, <p align="justify">Developed business proposals applying financial and operations analytics techniques. The main tool used were spreadsheets and Microsoft Power tools</p>, <p>Thesis: Vulnerability to manipulation for positional voting rules</p>, <p>Thesis: The effect of correlation neglect on polarization</p>, <p>
<label for="name">Your Name</label>
<input type="text" name="name" class="input" />
</p>, <p>
<label for="email">Your Email</label>
<input type="text" name="email" class="input" />
</p>, <p>
<label for="message">Your Message</label>
<textarea name="message" cols="88" rows="6" class="textarea"></textarea>
</p>]

If you are interested only in paragraphs (text without tags) then you should again (as above in case of a_tags) iterate over the list and for each element of the list, get the text/string out of it as follows:


In [17]:
for i in p_tags:
    print(i.text)


I am a Data Enthusiast, teaching Business Analytics and providing consultancy on Statistics, Economics and IT. Feel free to take a look around my webpage.
I achieved an average feedback score of 4.7 (out of 5) teaching Business Analytics,
									Business Mathematics and Macroeconomics courses to overall 111 students.
Students with no prior knowledge of programming successfully learned Python, R, Stata and IBM SPSS
									and applied their skills by participating to a Kaggle competition as a final course project
I was awarded a one year fellowship to teach modern economics at local universities.
									During the fellowship tenure I taught around 230 students at 3 different universities.
Developed a software (using R, HTML, CSS) for Post Disaster Needs Assessment.
									Consulted contracted companies regarding Ministry staff appraisal and training needs assessment.
									Consulted National Statistical Service regarding Census (and post census) activities
Led several major Data Science projects, participated in different quantitative and qualitative surveys
									provided consulting to local and international, private and public organizations.
Developed business proposals applying financial and operations analytics techniques. The main tool used were spreadsheets and Microsoft Power tools
Thesis: Vulnerability to manipulation for positional voting rules
Thesis: The effect of correlation neglect on polarization
Your Name
Your Email
Your Message