欢迎访问宙启技术站
智能推送

使用Python实现的简单爬虫程序

发布时间:2023-12-04 14:33:24

Python是一种广泛用于爬虫开发的编程语言,它简洁易读、功能强大、拥有丰富的第三方库,能够轻松实现爬虫程序。下面是一个使用Python实现的简单爬虫程序,以爬取豆瓣电影Top250为例。

首先,我们需要导入需要的库和模块。在这个例子中,我们需要使用requests库来发送请求获取网页内容,使用BeautifulSoup库来解析网页内容,使用pandas库来处理和保存数据。

import requests
from bs4 import BeautifulSoup
import pandas as pd

接下来,定义一个函数get_movie_top250()来获取豆瓣电影Top250的数据。在这个函数中,我们首先定义一个空的DataFrame来保存电影数据,然后使用循环来遍历不同页数的网页,逐页爬取电影数据。

def get_movie_top250():
    movie_data = pd.DataFrame(columns=['电影名称', '评分', '评价人数', '简介'])
    
    for i in range(10):
        url = f'https://movie.douban.com/top250?start={i * 25}'
        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'}
        
        r = requests.get(url, headers=headers)
        soup = BeautifulSoup(r.text, 'html.parser')
        
        movie_list = soup.find(class_='grid_view').find_all('li')
        
        for movie in movie_list:
            title = movie.find(class_='title').text.strip()
            rating = movie.find(class_='rating_num').text.strip()
            votes = movie.find(class_='star').find_all('span')[3].text.strip()
            
            intro = movie.find(class_='inq').text.strip() if movie.find(class_='inq') else ''
            
            movie_data = movie_data.append({'电影名称': title, '评分': rating, '评价人数': votes, '简介': intro}, ignore_index=True)
    
    return movie_data

最后,我们可以调用get_movie_top250()函数获取豆瓣电影Top250的数据,并将数据保存到本地文件。

if __name__ == '__main__':
    movie_data = get_movie_top250()
    movie_data.to_csv('movie_top250.csv', index=False)

运行程序后,会在当前目录下生成一个名为movie_top250.csv的CSV文件,里面包含了豆瓣电影Top250的电影名称、评分、评价人数和简介信息。

这个例子只是一个简单的爬虫程序,实际的爬虫项目可能涉及到更加复杂的页面解析、数据过滤和处理等问题,但基本的思路是类似的。使用Python编程语言和相关的库,可以方便地实现各种爬虫任务,从而获取所需的数据。