• 大小: 5KB
    文件类型: .py
    金币: 2
    下载: 1 次
    发布日期: 2021-06-07
  • 语言: Python
  • 标签: 爬虫  

资源简介

利用python爬虫对豆瓣和IMDB上的电影评价信息,并且最终通过图像可视化将IMDB250和豆瓣250的电影进行了比较,大致可以看出两个平台用户的电影审美水平

资源截图

代码片段和文件信息

import urllib.request
import requests
import matplotlib.pyplot as plt
from bs4 import BeautifulSoup
def readhtml(url):#url转换为html格式
    head={}
    data={}
    head[‘User-Agent‘]=“Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Acoo Browser 1.98.744; .NET CLR 3.5.30729)“
    req=urllib.request.Request(urldatahead)
    response=urllib.request.urlopen(req)
    html=response.read()
    html=html.decode(‘utf-8‘)
    return html
def analizeimdb(htmlimdbmovieimdbrating):#imdb的数据解析以及文件读入
    imdb=[]
    soup=BeautifulSoup(html“html.parser“);
    datas=soup.find_all(“tr“);
    for data in datas:
        x=data.find_all(“td“class_=“titleColumn“);
        if len(x)==0:
            continue;
        blist=[];
        for y in x:
            blist.append(y.get_text());
        imdbmovie.append(blist);
    for data in datas:
        x=data.find_all(“td“class_=“ratingColumn imdbRating“);
        if len(x)==0:
             continue;
        blist=[];
        for y in x:
            blist.append(y.get_text());
        imdbrating.append(blist);
    for i in range(250):
        x=imdbmovie[i];
        y=imdbrating[i];
        s=x[0]+y[0]+“\n“;
        imdb.append(s);
    file=open(r“C:\Users\Administrator\Desktop\3.csv““w“encoding=‘utf-8‘);
    file.writelines(imdb);
    file.close();
def analizedou(htmldoumoviedourating):#豆瓣的数据解析以及文件读入
    douban=[];
    soup=BeautifulSoup(html“html.parser“);
    datas=soup.find_all(“li“);
    for data in datas:
        x=data.find_all(“span“class_=“title“);
        if len(x)==0:
            continue;
        blist=[];
        for y in x:
            blist.append(y.get_text());
        doumovie.append(blist);
    for data in datas:
        x=data.find_all(“span“class_=“rating_num“);
        if len(x)==0:
            continue;
        blist=[];
        for y in x:
            blist.append(y.get_text());
        dourating.append(blist);
    for i in range(250):
        x=doumovie[i];
        y=dourating[i]
        s=str(i+1)+“\t“+x[0]+‘\t‘+try_(x)+‘\t‘+y[0]+“\n“;
        douban.append(s);
    file=open(r“C:\Users\Administrator\Desktop\4.txt““w“encoding=‘utf-8‘)
    file.writelines(douban);
    file.close();
def try_(x):#处理豆瓣中有些电影名称不存在外文的情况
    try:
        if x[1] in x:
            return x[1];
    except:
       return “  /N“;
def douban(doumoviedourating):   
    htmldatas=““;
    for i in range(10):
        url=“https://movie.douban.com/top250?start=“+str(25*i)+“&filter=“;
        html=readhtml(url);
        htmldatas=htmldatas

评论

共有 条评论