DEV Community

Cover image for Guide to Building a Simple Python Web Scraping Application
Lewis Kerr
Lewis Kerr

Posted on

Guide to Building a Simple Python Web Scraping Application

Scraping web data in Python usually involves sending HTTP requests to the target website and parsing the returned HTML or JSON data. ‌ Below is an example of a simple web scraping application that uses the requests library to send HTTP requests and uses the BeautifulSouplibrary to parse HTML. ‌

Python builds a simple web scraping case

First, make sure you have installed the requests and beautifulsoup4 libraries. If not, you can install them with the following command:‌

pip install requests beautifulsoup4
Then, you can write a Python script like the following to scrape network data:

import requests 
from bs4 import BeautifulSoup 

# URL of the target website 
url = 'http://example.com' 

# Sending HTTP GET request 
response = requests.get(url) 

# Check if the request was successful 
if response.status_code == 200: 
    # Parsing HTML with BeautifulSoup 
    soup = BeautifulSoup(response.text, 'html.parser') 

    # Extract the required data, for example, extract all the titles 
    titles = soup.find_all('h1') 

    # Print title 
    for title in titles: 
        print(title.text) 
else: 
    print('Request failed,status code:', response.status_code) 
Enter fullscreen mode Exit fullscreen mode

In this example, we first imported the requestsand BeautifulSouplibraries. Then, we defined the URL of the target website and sent an HTTP GET request using the requests.get() method. If the request is successful (status code is 200), we parse the returned HTML using BeautifulSoup and extract all <h1> tags, which usually contain the main title of the page. Finally, we print out the text content of each title.

Please note that in an actual web scraping project, you need to comply with the target website's robots.txt file rules and respect the website's copyright and terms of use. In addition, some websites may use anti-crawler techniques, such as dynamically loading content, captcha verification, etc., which may require more complex handling strategies.

Why do you need to use a proxy for web scraping?

Using a proxy to crawl websites is a common method to circumvent IP restrictions and anti-crawler mechanisms. Proxy servers can act as intermediaries, forwarding your requests to the target website and returning the response to you, so that the target website can only see the IP address of the proxy server instead of your real IP address.

A simple example of web scraping using a proxy

In Python, you can use the requestslibrary to set up a proxy. Here is a simple example showing how to use a proxy to send an HTTP request:

import requests 

# The IP address and port provided by swiftproxy 
proxy = { 
    'http': 'http://45.58.136.104:14123', 
    'https': 'http://119.28.12.192:23529', 
} 

# URL of the target website 
url = 'http://example.com' 

# Sending requests using a proxy 
response = requests.get(url, proxies=proxy) 

# Check if the request was successful 
if response.status_code == 200: 
    print('Request successful, response content:‌', response.text) 
else: 
    print('Request failed,status code:‌', response.status_code) 
Enter fullscreen mode Exit fullscreen mode

Note that you need to replace the proxy server IP and port with the actual proxy server address. Also, make sure the proxy server is reliable and supports the website you want to crawl. Some websites may detect and block requests from known proxy servers, so you may need to change proxy servers regularly or use a more advanced proxy service.

Top comments (0)