Python 爬取猫眼《邪不压正》电影评论

最近上映了好几部内容比较好的国产电影,如徐峥主演的《我不是药神》和姜文导演,彭于晏主演的《邪不压正》,今天我试着爬取《邪不压正》的评论。

PC 端网页上猫眼电影只能找得到热门短评,这是我们要找的评论只能从别处来找到,打开手机猫眼 APP 我们可以找到电影的评论,我们可以通过抓包工具来找到我们需要的 URl,

url = 'http://m.maoyan.com/mmdb/comments/movie/248566.json?_v_=yes&offset=1',抓取代码如下:

# -*- coding:utf-8 -*-

import  requests
import json
import time
import random

# 下载某一页信息
def get_one_page(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.170 Safari/537.36',
    }
    response = requests.get(url,headers=headers)
    if response.status_code == 200:
        return response.text
    return None

# 解析该页的数据
def parse_one_page(html):
    data = json.loads(html)['cmts']
    for item in data:
        yield{
            'comment':item['content'],
            'date':item['time'].split(' ')[0],
            'rate':item['score'],
            'city':item['cityName'],
            'nickname':item['nickName']
        }

# 保存 txt 文档
def save_to_text():
    for i in range(1,1001):
        # url 可以通过手机抓包获得
        url = 'http://m.maoyan.com/mmdb/comments/movie/248566.json?_v_=yes&offset=' + str(i)
        html = get_one_page(url)
        print('正在保存第%d页。'% i)
        for item in parse_one_page(html):
            with open('dianyan.txt','a',encoding='utf-8') as f:
                f.write(item['date'] + ',' + item['nickname']  + ',' + item['city'] + ','
                        + str(item['rate']) + ',' + item['comment'] + '\n')
            time.sleep(8 + float(random.randint(1,100)) / 20)

if __name__ == "__main__":
    save_to_text()

 

posted on 2018-07-22 20:29  梅子青酒  阅读(634)  评论(0)    收藏  举报

导航