title: How to scrape a whole website using beautifulsoup
body: <p>I'm quite new to Programming and OO programming especially. Nonetheless, I'm trying to write a very simple Spider for web crawling. Here's my first approach: </p>
  
  <p>I need to fetch the data out of this page: <a href="http://europa.eu/youth/volunteering/evs-organisation_en" rel="nofollow noreferrer">http://europa.eu/youth/volunteering/evs-organisation_en</a></p>
  
  <p>Firstly, I do a view on the page source to find HTML elements?
  <a href="http://view-source:https://europa.eu/youth/volunteering/evs-organisation_en" rel="nofollow noreferrer">view-source:https://europa.eu/youth/volunteering/evs-organisation_en</a></p>
  
  <p><strong>Note:</strong> I need to fetch the data that comes right below this line: 
  <h3>EVS accredited organisations search results: 6066</h3>  </p>
  
  <p>I chose beautiful soup for this job - since it is very powerful: </p>
  
  <p>I Use find_all: </p>
  
  <pre><code>soup.find_all('p')[0].get_text() # Searching for tags by class and id
  </code></pre>
  
  <p>Note: Classes and IDs are used by CSS to determine which HTML elements to apply certain styles to. We can also use them when scraping to specify specific elements we want to scrape.</p>
  
  <p>See the class: </p>
  
  <pre><code>                  &lt;div class="col-md-4"&gt;
              &lt;div class="vp ey_block block-is-flex"&gt;
    &lt;div class="ey_inner_block"&gt;
      &lt;h4 class="text-center"&gt;&lt;a href="/youth/volunteering/organisation/935175449_en" target="_blank"&gt;&amp;quot;People need people&amp;quot; Zaporizhya oblast civic organisation of disabled families&lt;/a&gt;&lt;/h4&gt;
              &lt;p class="ey_info"&gt;
      &lt;i class="fa fa-location-arrow fa-lg"&gt;&lt;/i&gt;
      Zaporizhzhya, &lt;strong&gt;Ukraine&lt;/strong&gt;
  &lt;/p&gt;    &lt;p class="ey_info"&gt;&lt;i class="fa fa-hand-o-right fa-lg"&gt;&lt;/i&gt; Sending&lt;/p&gt;
                    &lt;p&gt;&lt;strong&gt;PIC no:&lt;/strong&gt; 935175449&lt;/p&gt;
          &lt;div class="empty-block"&gt;
        &lt;a href="/youth/volunteering/organisation/935175449_en" target="_blank" class="ey_btn btn btn-default pull-right"&gt;Read more&lt;/a&gt;    &lt;/div&gt;
    &lt;/div&gt;
  </code></pre>
  
  <p>so this leads to: </p>
  
  <pre><code># import libraries
  import urllib2
  from bs4 import BeautifulSoup
  page = requests.get("https://europa.eu/youth/volunteering/evs-organisation_en")
  soup = BeautifulSoup(page.content, 'html.parser')
  soup
  </code></pre>
  
  <p>Now, we can use the find_all method to search for items by class or by id. In the below example, we'll search for any p tag that has the class outer-text</p>
  
  <pre><code>&lt;div class="col-md-4"&gt;
  </code></pre>
  
  <p>so we choose: </p>
  
  <pre><code>soup.find_all(class_="col-md-4")
  </code></pre>
  
  <p>Now I have to combine all.</p>
  
  <p>update: <strong>my approach:</strong> so far: </p>
  
  <p>I have extracted data wrapped within multiple HTML tags from a webpage using BeautifulSoup4. I want to store all of the extracted data in a list. And - to be more concrete: I want each of the extracted data as separate list elements separated by a comma (i.e.CSV-formated). </p>
  
  <p>To begin with the beginning:  </p>
  
  <p>here we have the <strong>HTML content structure:</strong></p>
  
  <pre><code> &lt;div class="view-content"&gt;
              &lt;div class="row is-flex"&gt;&lt;/span&gt;
                   &lt;div class="col-md-4"&gt;&lt;/span&gt;
              &lt;div class &lt;/span&gt;
    &lt;div class= &gt;
      &lt;h4 Data 1 &lt;/span&gt;
            &lt;div class= Data 2&lt;/span&gt;
              &lt;p class=
      &lt;i class=
       &lt;strong&gt;Data 3 &lt;/span&gt;
  &lt;/p&gt;    &lt;p class= Data 4 &lt;/span&gt;
            &lt;p class= Data 5 &lt;/span&gt;
                    &lt;p&gt;&lt;strong&gt;Data 6&lt;/span&gt;
          &lt;div class=&lt;/span&gt;
        &lt;a href="Data 7&lt;/span&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p><strong>Code to extract:</strong></p>
  
  <pre><code>for data in elem.find_all('span', class_=""):
  </code></pre>
  
  <p>This should give an output:</p>
  
  <pre><code>data = [ele.text for ele in soup.find_all('span', {'class':'NormalTextrun'})]
  print(data)
  </code></pre>
  
  <p><strong>Output:</strong>
  [' Data 1 ', ' Data 2 ', ' Data 3 ' and so forth]</p>
  
  <p><strong>question:</strong> / i need help with the extraction part... </p>