基于结构化程序设计的python爬虫程序

以下是一个基于结构化程序设计的Python爬虫程序示例,该程序可以通过请求目标网站并解析HTML文档来获取指定内容。该程序主要分为三个模块:请求模块、解析模块和数据存储模块。
1、从入口地址进行页面解析,获取接下来需要抓取的网页url;
2、遍历所有的网页,将url放入列表;
3、从url列表中获取具体的页面进行加载,从中下载自己感兴趣的信息,保存下来。
import requests
from bs4 import BeautifulSoup
import csv

# 请求模块
def get_html(url):
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    try:
        response = requests.get(url, headers=headers)
        return response.text
    except:
        return None

# 解析模块
def parse(html_doc):
    soup = BeautifulSoup(html_doc, 'html.parser')
    items = soup.find_all('div', class_='item')
    results = []
    for item in items:
        title = item.a.span.text.strip()
        rating = item.find('span', class_='rating_num').text.strip()
        info = item.find('div', class_='bd').p.text.strip().split('\n')[0]
        results.append([title, rating, info])
    return results

# 数据存储模块
def save_to_csv(results, filename):
    with open(filename, 'w', newline='', encoding='utf-8') as f:
        writer = csv.writer(f)
        writer.writerow(['电影名称', '评分', '信息'])
        for result in results:
            writer.writerow(result)

# 主函数
def main():
    url = 'https://movie.douban.com/top250'
    html_doc = get_html(url)
    results = parse(html_doc)
    save_to_csv(results, 'douban_top250.csv')

if __name__ == '__main__':
    main()

该示例程序主要实现了以下功能:

  1. 通过 requests 库发送HTTP请求并获取目标网站的HTML文档。
  2. 使用 BeautifulSoup 库解析HTML文档,提取需要的数据。
  3. 将提取的数据保存为csv文件。

在程序设计过程中,我们采用了模块化设计的思想,将请求、解析和存储等不同的功能拆分为独立的函数。这样可以提高程序的可读性和可维护性,同时也方便了代码复用。

你可能感兴趣的:(软件工程,python编程实践,爬虫)