【python爬虫】猫眼电影爬取分析

  1. 启动spyder新建文件进行代码的编写
  2. urllib.request请求到网页源代码:

豆瓣电影即将上映的影片的网页的地址是:

https://movie.douban.com/coming

开始编写代码获得该网址的源代码:

def get_response(url, headers):

    """

    获取响应对象

    :param url: 请求的url

    :param headers: 请求头信息

    :return: 返回服务器的响应信息

    """

    req = urllib.request.Request(url, headers=headers)

    resp = urllib.request.urlopen(req)

    return resp.read()

 

3.分析网页结构,并提取相应字段:

 

4.通过etree库将html信息转成对象

 

5.分析网页,制定提取策略:

在网页中审查元素发现:找到数据区域,发现table class 为 coming_list,使用通过xpath解析规则,获取需求信息html.xpath('//table[@class="coming_list"]//tr')得到所有行数据。

 

 

6.遍历节点进行数据清洗,并将数据以json格式保存:

item = []

    for row in rows:

        td = row.xpath('td')

        if len(td) == 0:

            continue

        

        # 07月05日

        date = td[0].text.strip()

        # 爱宠大机密2

        name = td[1].xpath('a')[0].text.strip()

        #原始数据:喜剧 / 动画 / 冒险  清洗后数据: ['喜剧', '动画', '冒险']

        type = td[2].text.strip().split(' / ')

        #原始数据:中国大陆 / 香港     清洗后数据:['中国大陆', '香港']

        region = td[3].text.strip().split(' / ')

        #原始数据:25768人           清洗后数据:25768

        num = int(td[4].text.strip()[:-1])

       

        temp = [date,name,type,region,num]

        item.append(temp)

7.分析统计关注量并绘制横向柱状图图表:

    # 按第四列进行排序

    item.sort(reverse=True,key=takecol4)

    labels = []

    nums = []

    temp = 0

    # 关注度最高的10部电影

    for i in item:

        labels.append(i[1])

        nums.append(i[4])

        temp += 1

        if temp > 9:

            break

       

    #为实现图表更加美观进行数据翻转

    labels.reverse()

    nums.reverse()

    x = nums

    idx = np.arange(len(x))

    color = cm.jet(np.array(x)/max(x))

    plt.barh(idx, x, color=color)

    plt.yticks(idx+0.4,labels)

    plt.grid(axis='x')

   

    #设置数据标签

    for a,b in zip(idx,x):

        plt.text(b+1800,a-0.4,'%d'%int(b),ha='center',va='bottom')

   

    #添加行列标签和标题

    plt.xlabel('关注人数')

    plt.ylabel('电影名称')

    plt.title('电影关注排行榜')

    plt.show()

8.分析类别信息并绘制饼图:

types = []

    # 关注度最高的10部电影

    for i in item:

        types += i[2]

    count_dict = dict()

    for t in types:

        if t in count_dict:

            count_dict[t] += 1

        else:

            count_dict[t] = 1

    labels = count_dict.keys()

    types = count_dict.values()

   

    #color = cm.jet(np.array(types)/max(types))

    plt.pie(types, labels=labels,

             autopct='%1.1f%%', startangle=90)

    plt.axis('equal')

    plt.show()

 

详细代码见GitHub:https://github.com/ty33123/spider_learn/tree/master/maoyan

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 好的,您想了解如何使用Python爬虫爬取猫眼电影评论,是吗?以下是一个简单的示例代码,可以帮助您开始: ``` import requests import json # 请求头 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'} # 爬取数据的网址 url = 'https://m.maoyan.com/mmdb/comments/movie/1299372.json?_v_=yes&offset=0&startTime=0' # 发送请求 response = requests.get(url, headers=headers) # 解析json数据 comments = json.loads(response.text)['cmts'] for comment in comments: print(comment['content']) ``` 这个代码将会向猫眼电影的评论网址发送请求,获取电影《误杀》的评论,并将评论的内容打印出来。 需要注意的是,这只是一个简单的示例代码。如果您想要爬取更多评论,需要修改offset和startTime参数,通过多次请求来获取更多的评论数据。同时,需要遵守网站的爬虫规则,不要过于频繁地发送请求,以免被网站屏蔽。 ### 回答2: Python爬虫是一种用于网页数据抓取的技术,能够让我们自动化地从网页上获取所需的数据猫眼电影是一个非常受欢迎的电影网站,我们可以利用Python爬虫技术来抓取该网站上的电影评论。 首先,我们需要导入相关的Python库,如requests、BeautifulSoup等,这些库可以帮助我们发送网络请求并解析网页内容。然后,我们可以使用requests发送HTTP请求,获取猫眼电影的网页源代码。 接下来,我们可以使用BeautifulSoup库来解析网页源代码,提取出电影评论所在的HTML标签。通过分析网页结构,可以找到包含评论内容的HTML标签,并使用BeautifulSoup提供的方法将其提取出来。 在提取评论内容后,我们可以将其存储到本地文件或数据库中,以便后续分析和使用。同时,我们也可以进一步提取其他信息,如评论用户的昵称、评分等。 在进行爬取时,我们需要注意一些爬虫的基本道德规范,如尊重网站的隐私政策、遵守网站的访问频率限制等。 总之,利用Python爬虫技术可以方便地获取猫眼电影评论数据,并进行后续分析和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值