案例:爬取豆瓣电影 Top250 的数据

这是一个简单的Python爬虫案例,通过发送 HTTP 请求,解析网页内容,提取目标信息,并循环爬取多页数据,最终获得了豆瓣电影 Top250 的电影名称、评分、评价人数等信息。您可以根据这个示例来编写其他爬虫案例,并根据需要对代码进行修改和扩展。

1. 目标:

爬取豆瓣电影 Top250 的电影名称、评分、评价人数等信息。

 2. 实现过程:

2.1 导入必要的库

import requests

from bs4 import BeautifulSoup

2.2 发送 HTTP 请求并解析网页内容

def get_movie_data(url):

    response = requests.get(url)

    soup = BeautifulSoup(response.text, 'html.parser')

    return soup

2.3 提取电影信息

def extract_movie_info(soup):

    movie_list = []

    items = soup.find_all('div', class_='item')

    for item in items:

        title = item.find('span', class_='title').text

        rating = item.find('span', class_='rating_num').text

        votes = item.find('span', class_='inq').text

        movie_list.append({'title': title, 'rating': rating, 'votes': votes})

    return movie_list

2.4 爬取多页数据

def crawl_top250():

    base_url = 'https://movie.douban.com/top250?start={}&filter='

    movie_data = []

    for start in range(0, 250, 25):

        url = base_url.format(start)

        soup = get_movie_data(url)

        movie_data.extend(extract_movie_info(soup))

    return movie_data

 2.5 执行爬虫并输出结果

if __name__ == "__main__":

    top250_movies = crawl_top250()

    for movie in top250_movies:

        print(f"电影:{movie['title']},评分:{movie['rating']},评价人数:{movie['votes']}")

 3. 代码实现讲解:

- 导入必要的库: 使用 `requests` 库发送 HTTP 请求,使用 `BeautifulSoup` 库解析网页内容。

- 发送 HTTP 请求并解析网页内容: `get_movie_data` 函数负责发送 HTTP 请求获取网页内容,并使用 BeautifulSoup 解析网页。

- 提取电影信息: `extract_movie_info` 函数从解析后的网页内容中提取电影的名称、评分、评价人数等信息,并以字典的形式保存。

- 爬取多页数据: `crawl_top250` 函数循环爬取豆瓣电影 Top250 的多个页面,并调用提取信息的函数。

- 执行爬虫并输出结果: 在 `__main__` 部分调用 `crawl_top250` 函数执行爬虫,并打印爬取结果。

这是一个简单的爬虫案例,通过发送 HTTP 请求,解析网页内容,提取目标信息,并循环爬取多页数据,最终获得了豆瓣电影 Top250 的电影名称、评分、评价人数等信息。您可以根据这个示例来编写其他爬虫案例,并根据需要对代码进行修改和扩展。

你可能感兴趣的:(爬虫,python)