爬取豆瓣电影排行top250

Posted liduo0413

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬取豆瓣电影排行top250相关的知识,希望对你有一定的参考价值。

功能描述:

爬取豆瓣电影排行top250

使用的库

1、time

2、json

3、requests

4、BuautifulSoup

5、RequestException

上机实验室:

"""
    作者:李舵
    日期:2019-4-27
    功能:抓取豆瓣电影top250
    版本:V1.0
"""

import time
import json
import requests
from bs4 import BeautifulSoup
from requests.exceptions import RequestException


def get_one_page(url):
    try:
        headers = {‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/74.0.3729.108 Safari/537.36‘}
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return response.text
        return None
    except RequestException:
        return None


def parse_one_page(html):
    soup = BeautifulSoup(html, ‘lxml‘)
    ol_list = soup.find(‘ol‘, {‘class‘: ‘grid_view‘})
    li_list = ol_list.find_all(‘li‘)
    for i in range(25):
        move_value = li_list[i]
        yield {
            ‘index‘: move_value.find(‘em‘, {‘class‘: ‘‘}).text.strip(),
            ‘title‘: move_value.find(‘span‘, {‘class‘: ‘title‘}).text.strip(),
            ‘actor‘: move_value.find(‘p‘, {‘class‘: ‘‘}).text.strip(),
            ‘score‘: move_value.find(‘span‘, {‘class‘: ‘rating_num‘}).text.strip()
        }


def write_to_file(content):
    with open(‘result.txt‘, ‘a‘, encoding=‘utf-8‘) as f:
        print(type(json.dumps(content)))
        f.write(json.dumps(content, ensure_ascii=False)+‘\n‘)


def main(start):
    url = ‘https://movie.douban.com/top250?start=‘ + str(start)
    html = get_one_page(url)
    for item in parse_one_page(html):
        print(item)
        write_to_file(item)


if __name__ == ‘__main__‘:
    for i in range(11):
        main(start=i * 25)
        time.sleep(1)

  

补充说明:

1、

以上是关于爬取豆瓣电影排行top250的主要内容,如果未能解决你的问题,请参考以下文章

python爬虫入门爬取豆瓣电影top250

团队-爬取豆瓣电影TOP250-需求分析

团队-爬取豆瓣电影TOP250-需求分析

团队-Python 爬取豆瓣电影top250-需求分析

Python爬虫编程思想(87):项目实战--抓取豆瓣电影排行榜

Python爬虫编程思想(87):项目实战--抓取豆瓣电影排行榜