Extract Google Search Results Using Python and BeautifulSoup

You can also read this article on our blog:
Extract Google Search Results Using Python and BeautifulSoup

Web scraping, the process of extracting data from websites, can be a powerful tool for gathering information from the internet.

In this article, we’ll explore how to scrape Google search results using Python, BeautifulSoup, and other tools. We’ll break down a specific code example and discuss crafting effective selectors for web scraping.

Finally, we’ll address the limitations and challenges of such projects.

Setting Up the Environment

Before diving into the code, ensure you have Python installed on your system. Additionally, you’ll need to install a few libraries:

  • Requests: To make HTTP requests in Python.
  • BeautifulSoup: For parsing HTML and extracting the data.
  • Rich (optional): For pretty-printing the results.

You can install these libraries using pip:

pip <span>install </span>requests beautifulsoup4 rich
pip <span>install </span>requests beautifulsoup4 rich
pip install requests beautifulsoup4 rich

Enter fullscreen mode Exit fullscreen mode

The Code Explained

The provided Python script is structured to extract and display Google search results. Let’s go through it step by step:

1. Importing Libraries

<span>import</span> <span>requests</span>
<span>from</span> <span>bs4</span> <span>import</span> <span>BeautifulSoup</span>
<span>from</span> <span>rich</span> <span>import</span> <span>print</span>
<span>from</span> <span>urllib.parse</span> <span>import</span> <span>urlparse</span>
<span>from</span> <span>urllib.parse</span> <span>import</span> <span>parse_qs</span>
<span>import</span> <span>requests</span>
<span>from</span> <span>bs4</span> <span>import</span> <span>BeautifulSoup</span>
<span>from</span> <span>rich</span> <span>import</span> <span>print</span>
<span>from</span> <span>urllib.parse</span> <span>import</span> <span>urlparse</span>
<span>from</span> <span>urllib.parse</span> <span>import</span> <span>parse_qs</span>
import requests from bs4 import BeautifulSoup from rich import print from urllib.parse import urlparse from urllib.parse import parse_qs

Enter fullscreen mode Exit fullscreen mode

This section imports the necessary modules. requests is used for making HTTP requests, BeautifulSoup for parsing HTML, and rich for enhanced printing. urlparse and parse_qs from urllib.parse are used for URL parsing.

2. Making the Request and Parsing the HTML

<span>query</span> <span>=</span> <span>"</span><span>Python programming</span><span>"</span>
<span>url</span> <span>=</span> <span>f</span><span>"</span><span>https://www.google.com/search?q=</span><span>{</span><span>query</span><span>}</span><span>"</span>
<span>response</span> <span>=</span> <span>requests</span><span>.</span><span>get</span><span>(</span><span>url</span><span>)</span>
<span>soup</span> <span>=</span> <span>BeautifulSoup</span><span>(</span><span>response</span><span>.</span><span>text</span><span>,</span> <span>'</span><span>html.parser</span><span>'</span><span>)</span>
<span>print</span><span>(</span><span>soup</span><span>)</span>
<span>query</span> <span>=</span> <span>"</span><span>Python programming</span><span>"</span>
<span>url</span> <span>=</span> <span>f</span><span>"</span><span>https://www.google.com/search?q=</span><span>{</span><span>query</span><span>}</span><span>"</span>
<span>response</span> <span>=</span> <span>requests</span><span>.</span><span>get</span><span>(</span><span>url</span><span>)</span>
<span>soup</span> <span>=</span> <span>BeautifulSoup</span><span>(</span><span>response</span><span>.</span><span>text</span><span>,</span> <span>'</span><span>html.parser</span><span>'</span><span>)</span>
<span>print</span><span>(</span><span>soup</span><span>)</span>
query = "Python programming" url = f"https://www.google.com/search?q={query}" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') print(soup)

Enter fullscreen mode Exit fullscreen mode

Here, the script constructs a Google search URL for a given query, makes an HTTP request to that URL, and then parses the response using BeautifulSoup.

3. Extracting Google links

The next step involves accurately identifying the various sections of Google’s webpage. We are focusing on locating these specific parts:

Thus, for each section, we can extract the specific data we need. In my implementation, the extract_section function handles the parsing of these individual sections.

<span>def</span> <span>extract_results</span><span>(</span><span>soup</span><span>):</span>
<span>main</span> <span>=</span> <span>soup</span><span>.</span><span>select_one</span><span>(</span><span>"</span><span>#main</span><span>"</span><span>)</span>
<span>res</span> <span>=</span> <span>[]</span>
<span>for</span> <span>gdiv</span> <span>in</span> <span>main</span><span>.</span><span>select</span><span>(</span><span>'</span><span>.g, .fP1Qef</span><span>'</span><span>):</span>
<span>res</span><span>.</span><span>append</span><span>(</span><span>extract_section</span><span>(</span><span>gdiv</span><span>))</span>
<span>return</span> <span>res</span>
<span>def</span> <span>extract_results</span><span>(</span><span>soup</span><span>):</span>
    <span>main</span> <span>=</span> <span>soup</span><span>.</span><span>select_one</span><span>(</span><span>"</span><span>#main</span><span>"</span><span>)</span>

    <span>res</span> <span>=</span> <span>[]</span>
    <span>for</span> <span>gdiv</span> <span>in</span> <span>main</span><span>.</span><span>select</span><span>(</span><span>'</span><span>.g, .fP1Qef</span><span>'</span><span>):</span>
        <span>res</span><span>.</span><span>append</span><span>(</span><span>extract_section</span><span>(</span><span>gdiv</span><span>))</span>
    <span>return</span> <span>res</span>
def extract_results(soup): main = soup.select_one("#main") res = [] for gdiv in main.select('.g, .fP1Qef'): res.append(extract_section(gdiv)) return res

Enter fullscreen mode Exit fullscreen mode

4. Extracting each section data

Then, we’re looking to extract data from each section, specifically title, link and description:

The key is to check for presence or not of every elements you’re pulling data from. This avoid exceptions, and prevent crash on the program during the extraction process.

<span>def</span> <span>extract_section</span><span>(</span><span>gdiv</span><span>):</span>
<span># Getting our elements </span> <span>title</span> <span>=</span> <span>gdiv</span><span>.</span><span>select_one</span><span>(</span><span>'</span><span>h3</span><span>'</span><span>)</span>
<span>link</span> <span>=</span> <span>gdiv</span><span>.</span><span>select_one</span><span>(</span><span>'</span><span>a</span><span>'</span><span>)</span>
<span>description</span> <span>=</span> <span>gdiv</span><span>.</span><span>find</span><span>(</span><span>'</span><span>.BNeawe</span><span>'</span><span>)</span>
<span>return</span> <span>{</span>
<span># Extract title's text only if text is found </span> <span>'</span><span>title</span><span>'</span><span>:</span> <span>title</span><span>.</span><span>text</span> <span>if</span> <span>title</span> <span>else</span> <span>None</span><span>,</span>
<span>'</span><span>link</span><span>'</span><span>:</span> <span>link</span><span>[</span><span>'</span><span>href</span><span>'</span><span>]</span> <span>if</span> <span>link</span> <span>else</span> <span>None</span><span>,</span>
<span>'</span><span>description</span><span>'</span><span>:</span> <span>description</span><span>.</span><span>text</span> <span>if</span> <span>description</span> <span>else</span> <span>None</span>
<span>}</span>
<span>def</span> <span>extract_section</span><span>(</span><span>gdiv</span><span>):</span>
    <span># Getting our elements </span>    <span>title</span> <span>=</span> <span>gdiv</span><span>.</span><span>select_one</span><span>(</span><span>'</span><span>h3</span><span>'</span><span>)</span>
    <span>link</span> <span>=</span> <span>gdiv</span><span>.</span><span>select_one</span><span>(</span><span>'</span><span>a</span><span>'</span><span>)</span>
    <span>description</span> <span>=</span> <span>gdiv</span><span>.</span><span>find</span><span>(</span><span>'</span><span>.BNeawe</span><span>'</span><span>)</span>
    <span>return</span> <span>{</span>
        <span># Extract title's text only if text is found </span>        <span>'</span><span>title</span><span>'</span><span>:</span> <span>title</span><span>.</span><span>text</span> <span>if</span> <span>title</span> <span>else</span> <span>None</span><span>,</span>

        <span>'</span><span>link</span><span>'</span><span>:</span> <span>link</span><span>[</span><span>'</span><span>href</span><span>'</span><span>]</span> <span>if</span> <span>link</span> <span>else</span> <span>None</span><span>,</span>
        <span>'</span><span>description</span><span>'</span><span>:</span> <span>description</span><span>.</span><span>text</span> <span>if</span> <span>description</span> <span>else</span> <span>None</span>
    <span>}</span>
def extract_section(gdiv): # Getting our elements title = gdiv.select_one('h3') link = gdiv.select_one('a') description = gdiv.find('.BNeawe') return { # Extract title's text only if text is found 'title': title.text if title else None, 'link': link['href'] if link else None, 'description': description.text if description else None }

Enter fullscreen mode Exit fullscreen mode

Let’s run it and boom:

<span> </span><span>[</span><span> </span><span>{</span><span> </span><span>'title':</span><span> </span><span>'Welcome</span><span> </span><span>to</span><span> </span><span>Python.org'</span><span>,</span><span> </span><span>'link':</span><span> </span><span>'/url?q=https://www.python.org/&sa=U&ved=</span><span>2</span><span>ahUKEwj</span><span>4</span><span>wL</span><span>76</span><span>qPWDAxVEia</span><span>8</span><span>BHWCpAZEQFnoECAIQAg&usg=AOvVaw</span><span>0</span><span>ftcoYNT</span><span>39</span><span>iYF</span><span>9</span><span>FN</span><span>9</span><span>-DDSp'</span><span>,</span><span> </span><span>'description':</span><span> </span><span>None</span><span> </span><span>},</span><span> </span><span>{</span><span> </span><span>'title':</span><span> </span><span>'Introduction</span><span> </span><span>to</span><span> </span><span>Python</span><span> </span><span>-</span><span> </span><span>W</span><span>3</span><span>Schools'</span><span>,</span><span> </span><span>'link':</span><span> </span><span>'/url?q=https://www.w</span><span>3</span><span>schools.com/python/python_intro.asp&sa=U&ved=</span><span>2</span><span>ahUKEwj</span><span>4</span><span>wL</span><span>76</span><span>qPWDAxVEia</span><span>8</span><span>BHWCpAZEQFnoECAYQAg&usg=AOvV</span><span> </span><span>aw</span><span>1</span><span>Y</span><span>76</span><span>DoERJLKhPAer</span><span>6</span><span>y</span><span>6</span><span>af</span><span>0</span><span>'</span><span>,</span><span> </span><span>'description':</span><span> </span><span>None</span><span> </span><span>},</span><span> </span><span>{</span><span> </span><span>'title':</span><span> </span><span>'Learn</span><span> </span><span>Python</span><span> </span><span>Programming</span><span> </span><span>-</span><span> </span><span>Programiz'</span><span>,</span><span> </span><span>'link':</span><span> </span><span>'/url?q=https://www.programiz.com/python-programming&sa=U&ved=</span><span>2</span><span>ahUKEwj</span><span>4</span><span>wL</span><span>76</span><span>qPWDAxVEia</span><span>8</span><span>BHWCpAZEQFnoECAUQAg&usg=AOvVaw</span><span>0</span><span>fo</span><span> </span><span>dl</span><span>3</span><span>yhXKlVH</span><span>6</span><span>jJnJge</span><span>3</span><span>j'</span><span>,</span><span> </span><span>'description':</span><span> </span><span>None</span><span> </span><span>},</span><span> </span><span>...</span><span> </span><span>]</span><span> </span>
<span> </span><span>[</span><span> </span><span>{</span><span> </span><span>'title':</span><span> </span><span>'Welcome</span><span> </span><span>to</span><span> </span><span>Python.org'</span><span>,</span><span> </span><span>'link':</span><span> </span><span>'/url?q=https://www.python.org/&sa=U&ved=</span><span>2</span><span>ahUKEwj</span><span>4</span><span>wL</span><span>76</span><span>qPWDAxVEia</span><span>8</span><span>BHWCpAZEQFnoECAIQAg&usg=AOvVaw</span><span>0</span><span>ftcoYNT</span><span>39</span><span>iYF</span><span>9</span><span>FN</span><span>9</span><span>-DDSp'</span><span>,</span><span> </span><span>'description':</span><span> </span><span>None</span><span> </span><span>},</span><span> </span><span>{</span><span> </span><span>'title':</span><span> </span><span>'Introduction</span><span> </span><span>to</span><span> </span><span>Python</span><span> </span><span>-</span><span> </span><span>W</span><span>3</span><span>Schools'</span><span>,</span><span> </span><span>'link':</span><span> </span><span>'/url?q=https://www.w</span><span>3</span><span>schools.com/python/python_intro.asp&sa=U&ved=</span><span>2</span><span>ahUKEwj</span><span>4</span><span>wL</span><span>76</span><span>qPWDAxVEia</span><span>8</span><span>BHWCpAZEQFnoECAYQAg&usg=AOvV</span><span> </span><span>aw</span><span>1</span><span>Y</span><span>76</span><span>DoERJLKhPAer</span><span>6</span><span>y</span><span>6</span><span>af</span><span>0</span><span>'</span><span>,</span><span> </span><span>'description':</span><span> </span><span>None</span><span> </span><span>},</span><span> </span><span>{</span><span> </span><span>'title':</span><span> </span><span>'Learn</span><span> </span><span>Python</span><span> </span><span>Programming</span><span> </span><span>-</span><span> </span><span>Programiz'</span><span>,</span><span> </span><span>'link':</span><span> </span><span>'/url?q=https://www.programiz.com/python-programming&sa=U&ved=</span><span>2</span><span>ahUKEwj</span><span>4</span><span>wL</span><span>76</span><span>qPWDAxVEia</span><span>8</span><span>BHWCpAZEQFnoECAUQAg&usg=AOvVaw</span><span>0</span><span>fo</span><span> </span><span>dl</span><span>3</span><span>yhXKlVH</span><span>6</span><span>jJnJge</span><span>3</span><span>j'</span><span>,</span><span> </span><span>'description':</span><span> </span><span>None</span><span> </span><span>},</span><span> </span><span>...</span><span> </span><span>]</span><span> </span>
[ { 'title': 'Welcome to Python.org', 'link': '/url?q=https://www.python.org/&sa=U&ved=2ahUKEwj4wL76qPWDAxVEia8BHWCpAZEQFnoECAIQAg&usg=AOvVaw0ftcoYNT39iYF9FN9-DDSp', 'description': None }, { 'title': 'Introduction to Python - W3Schools', 'link': '/url?q=https://www.w3schools.com/python/python_intro.asp&sa=U&ved=2ahUKEwj4wL76qPWDAxVEia8BHWCpAZEQFnoECAYQAg&usg=AOvV aw1Y76DoERJLKhPAer6y6af0', 'description': None }, { 'title': 'Learn Python Programming - Programiz', 'link': '/url?q=https://www.programiz.com/python-programming&sa=U&ved=2ahUKEwj4wL76qPWDAxVEia8BHWCpAZEQFnoECAUQAg&usg=AOvVaw0fo dl3yhXKlVH6jJnJge3j', 'description': None }, ... ]

Enter fullscreen mode Exit fullscreen mode

5. Process links

Our links are still not exactly right, they are contained in an q parameter of google’s url page. Let’s implement extraction for that:

<span>def</span> <span>extract_href</span><span>(</span><span>href</span><span>):</span>
<span>url</span> <span>=</span> <span>urlparse</span><span>(</span><span>href</span><span>)</span>
<span>query</span> <span>=</span> <span>parse_qs</span><span>(</span><span>url</span><span>.</span><span>query</span><span>)</span>
<span>if</span> <span>not</span> <span>(</span><span>'</span><span>q</span><span>'</span> <span>in</span> <span>query</span> <span>and</span> <span>query</span><span>[</span><span>'</span><span>q</span><span>'</span><span>]</span> <span>and</span> <span>len</span><span>(</span><span>query</span><span>[</span><span>'</span><span>q</span><span>'</span><span>])</span> <span>></span> <span>0</span><span>):</span>
<span>return</span> <span>None</span>
<span>return</span> <span>query</span><span>[</span><span>'</span><span>q</span><span>'</span><span>][</span><span>0</span><span>]</span>
<span>def</span> <span>extract_href</span><span>(</span><span>href</span><span>):</span>
    <span>url</span> <span>=</span> <span>urlparse</span><span>(</span><span>href</span><span>)</span>
    <span>query</span> <span>=</span> <span>parse_qs</span><span>(</span><span>url</span><span>.</span><span>query</span><span>)</span>
    <span>if</span> <span>not</span> <span>(</span><span>'</span><span>q</span><span>'</span> <span>in</span> <span>query</span> <span>and</span> <span>query</span><span>[</span><span>'</span><span>q</span><span>'</span><span>]</span> <span>and</span> <span>len</span><span>(</span><span>query</span><span>[</span><span>'</span><span>q</span><span>'</span><span>])</span> <span>></span> <span>0</span><span>):</span>
        <span>return</span> <span>None</span>
    <span>return</span> <span>query</span><span>[</span><span>'</span><span>q</span><span>'</span><span>][</span><span>0</span><span>]</span>
def extract_href(href): url = urlparse(href) query = parse_qs(url.query) if not ('q' in query and query['q'] and len(query['q']) > 0): return None return query['q'][0]

Enter fullscreen mode Exit fullscreen mode

And add it in our extract_section:

<span>def</span> <span>extract_section</span><span>(</span><span>gdiv</span><span>):</span>
<span>...</span>
<span>return</span> <span>{</span>
<span>...</span>
<span>'</span><span>link</span><span>'</span><span>:</span> <span>extract_href</span><span>(</span><span>link</span><span>[</span><span>'</span><span>href</span><span>'</span><span>])</span> <span>if</span> <span>link</span> <span>else</span> <span>None</span><span>,</span>
<span>...</span>
<span>}</span>
<span>def</span> <span>extract_section</span><span>(</span><span>gdiv</span><span>):</span>
    <span>...</span>
    <span>return</span> <span>{</span>
        <span>...</span>
        <span>'</span><span>link</span><span>'</span><span>:</span> <span>extract_href</span><span>(</span><span>link</span><span>[</span><span>'</span><span>href</span><span>'</span><span>])</span> <span>if</span> <span>link</span> <span>else</span> <span>None</span><span>,</span>
        <span>...</span>
    <span>}</span>
def extract_section(gdiv): ... return { ... 'link': extract_href(link['href']) if link else None, ... }

Enter fullscreen mode Exit fullscreen mode

Re-run it and voila!

<span> </span><span>[</span><span><br> </span><span>{</span><span>'title':</span><span> </span><span>'Welcome</span><span> </span><span>to</span><span> </span><span>Python.org'</span><span>,</span><span> </span><span>'link':</span><span> </span><span>'<a href="https://blogs.ink/?golink=aHR0cHM6Ly93d3cucHl0aG9uLm9yZy8=" target="_blank" rel="nofollow">https://www.python.org/</a>'</span><span>,</span><span> </span><span>'description':</span><span> </span><span>None</span><span>},</span><span><br> </span><span>{</span><span><br> </span><span>'title':</span><span> </span><span>'Introduction</span><span> </span><span>to</span><span> </span><span>Python</span><span> </span><span>-</span><span> </span><span>W</span><span>3</span><span>Schools'</span><span>,</span><span><br> </span><span>'link':</span><span> </span><span>'<a href="https://blogs.ink/?golink=aHR0cHM6Ly93d3cudw==" target="_blank" rel="nofollow">https://www.w</a></span><span>3</span><span>schools.com/python/python_intro.asp'</span><span>,</span><span><br> </span><span>'description':</span><span> </span><span>None</span><span><br> </span><span>},</span><span><br> </span><span>{</span><span><br> </span><span>'title':</span><span> </span><span>'Learn</span><span> </span><span>Python</span><span> </span><span>Programming</span><span> </span><span>-</span><span> </span><span>Programiz'</span><span>,</span><span><br> </span><span>'link':</span><span> </span><span>'<a href="https://blogs.ink/?golink=aHR0cHM6Ly93d3cucHJvZ3JhbWl6LmNvbS9weXRob24tcHJvZ3JhbW1pbmc=" target="_blank" rel="nofollow">https://www.programiz.com/python-programming</a>'</span><span>,</span><span><br> </span><span>'description':</span><span> </span><span>None</span><span><br> </span><span>},</span><span><br> </span><span>{</span><span>'title':</span><span> </span><span>'Python</span><span> </span><span>Programming</span><span> </span><span>Tutorials'</span><span>,</span><span> </span><span>'link':</span><span> </span><span>'<a href="https://blogs.ink/?golink=aHR0cHM6Ly9weXRob25wcm9ncmFtbWluZy5uZXQv" target="_blank" rel="nofollow">https://pythonprogramming.net/</a>'</span><span>,</span><span> </span><span>'description':</span><span> </span><span>None</span><span>},</span><span><br> </span><span>...</span><span><br> </span><span>]</span><span> </span>
<span> </span><span>[</span><span><br> </span><span>{</span><span>'title':</span><span> </span><span>'Welcome</span><span> </span><span>to</span><span> </span><span>Python.org'</span><span>,</span><span> </span><span>'link':</span><span> </span><span>'<a href="https://blogs.ink/?golink=aHR0cHM6Ly93d3cucHl0aG9uLm9yZy8=" target="_blank" rel="nofollow">https://www.python.org/</a>'</span><span>,</span><span> </span><span>'description':</span><span> </span><span>None</span><span>},</span><span><br> </span><span>{</span><span><br> </span><span>'title':</span><span> </span><span>'Introduction</span><span> </span><span>to</span><span> </span><span>Python</span><span> </span><span>-</span><span> </span><span>W</span><span>3</span><span>Schools'</span><span>,</span><span><br> </span><span>'link':</span><span> </span><span>'<a href="https://blogs.ink/?golink=aHR0cHM6Ly93d3cudw==" target="_blank" rel="nofollow">https://www.w</a></span><span>3</span><span>schools.com/python/python_intro.asp'</span><span>,</span><span><br> </span><span>'description':</span><span> </span><span>None</span><span><br> </span><span>},</span><span><br> </span><span>{</span><span><br> </span><span>'title':</span><span> </span><span>'Learn</span><span> </span><span>Python</span><span> </span><span>Programming</span><span> </span><span>-</span><span> </span><span>Programiz'</span><span>,</span><span><br> </span><span>'link':</span><span> </span><span>'<a href="https://blogs.ink/?golink=aHR0cHM6Ly93d3cucHJvZ3JhbWl6LmNvbS9weXRob24tcHJvZ3JhbW1pbmc=" target="_blank" rel="nofollow">https://www.programiz.com/python-programming</a>'</span><span>,</span><span><br> </span><span>'description':</span><span> </span><span>None</span><span><br> </span><span>},</span><span><br> </span><span>{</span><span>'title':</span><span> </span><span>'Python</span><span> </span><span>Programming</span><span> </span><span>Tutorials'</span><span>,</span><span> </span><span>'link':</span><span> </span><span>'<a href="https://blogs.ink/?golink=aHR0cHM6Ly9weXRob25wcm9ncmFtbWluZy5uZXQv" target="_blank" rel="nofollow">https://pythonprogramming.net/</a>'</span><span>,</span><span> </span><span>'description':</span><span> </span><span>None</span><span>},</span><span><br> </span><span>...</span><span><br> </span><span>]</span><span> </span>
[
{'title': 'Welcome to Python.org', 'link': 'https://www.python.org/', 'description': None},
{
'title': 'Introduction to Python - W3Schools',
'link': 'https://www.w3schools.com/python/python_intro.asp',
'description': None
},
{
'title': 'Learn Python Programming - Programiz',
'link': 'https://www.programiz.com/python-programming',
'description': None
},
{'title': 'Python Programming Tutorials', 'link': 'https://pythonprogramming.net/', 'description': None},
...
]

Enter fullscreen mode Exit fullscreen mode



Crafting Good Selectors

Selectors are crucial in web scraping. They allow you to target specific elements in the HTML document. This script uses CSS selectors like #main, .g, and .fP1Qef to identify parts of the Google search results page.

These selectors are prone to change if Google updates its HTML structure.

The key for good selectors is to keep them simple, the most specific they are the more prone they are to break on even very slight change.

Write selectors that are parent dependent like #main > .fP1Qef only when it’s absolutely needed.

What’s next?

1. Maintain for changes in the page structure

Google frequently update their HTML structure. This means that a scraper can break easily and requires regular maintenance. Next step for you, is to maintain those selectors when something break.

2. Add proxies

Frequent requests to a website from the same IP can lead to your IP being blocked. Next step is to implement proxies to your code, allowing you to support multiple regions.

3. Data Quality and Reliability

Scraped data might not always be reliable or accurate. You should always verify and validate the data obtained through web scraping, by implementing extensive tests of your code, and testing your implementation on numerous sample pages.

Conclusion

You are now able to integrate Google’s search results in your project!

If you want to learn more about Web Scraping & Data extraction and discuss about this article, join us on Discord!

https://discord.com/invite/fHbbHTq4CQ

原文链接:Extract Google Search Results Using Python and BeautifulSoup

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
Only they who fulfill their duties in everyday matters will fulfill them on great occasions.
只有在日常生活中尽责的人才会在重大时刻尽责
评论 抢沙发

请登录后发表评论

    暂无评论内容