1-2 用Python爬取猫眼票房网上的电影票房信息

 1 piaofang.py
 2 #-*- coding:utf-8 -*-
 3 '''
 4 该脚本可以抓取猫眼票房网站上的电影票房数据
 5 使用的数据为豆瓣上爬取的电影,见文件:doubanMovies_IMDBScore.csv
 6 '''
 7 import requests
 8 import lxml.html
 9 import time
10 from pandas import DataFrame
11 import pandas as pd
12
13 headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'}
14 def getDoc(url):
15     resp=requests.get(url,headers=headers)  #得到网页响应
16     time.sleep(0.1)   #暂停0.1秒,防止抓取太频繁被封IP
17     content=resp.text  #获取相应内容
18     doc = lxml.html.fromstring(content)
19     return doc
20
21 #函数:输入为电影名字,输出为该电影在猫眼网上的票房
22 #说明:如果猫眼上没有该电影的信息,则标记:notfound
23 #如果猫眼上可以搜到该电影,但是没有票房数据,则标记:withoutData
24 def getPiaofang(title):
25     #根据电影名字形成猫眼上该电影的搜索结果页面
26     url = 'http://pf.maoyan.com/search?_v_=yes&key='+title
27     #由于编码格式比较混乱,所以此处尝试两种编码格式
28     try:
29         url=url.decode('gbk').encode('utf-8')
30     except:
31         url=url.encode('utf-8')
32     finally:
33         tempList=[]  #初始化函数中暂时用到的列表
34         doc=getDoc(url)  #解析网页
35         #抓取到的后缀名,可能为'万票房'、'人想看'、'暂无票房数据'
36         temp_back=doc.xpath('//*[@id="search-list"]/article/em/text()')
37         #某一部电影搜索结果页面,由于会有名字相近的电影会被搜索出来,所以要进行判断
38         temp_name=doc.xpath('//*[@id="search-list"]/article/div/text()')
39         if temp_name!=[]:  #首先结果页抓到的电影列表要不为空,即能搜索到该电影
40             #如果为空,则标记为'notfound'
41             for i in range(len(temp_name)):  #对搜索出的电影名字进行判定,取出与搜索的电影名字完全相同的一项
42                 temp1=(temp_name[i]).encode('utf-8')
43                 if temp1==title:  #如果循环到第i个名字,找到了与搜索的电影名字完全相同的一项,则接着对数字的后缀进行判断
44                     #如果没有找到与搜索的电影的名字完全相同的一项,则标记为'withoutData'
45                     temp2=unicode(temp_back[i]).encode('utf-8')
46                     if temp2=='万票房':  #如果后缀名为'万票房',则该数据可能就是我们要找的数据
47                         temp_num = doc.xpath('//*[@id="search-list"]/article['+str(i+1)+']/em/span/text()')
48                         if temp_num!=[]:  #如果可以抓取到数据,则转换为int类型后的数据即为所找的票房数据
49                             #如果抓取不到,则标记为'withoutData'
50                             print int(temp_num[0])
51                             tempList.append(int(temp_num[0]))
52                         else:
53                             tempList.append('withoutData')
54                     else:
55                         tempList.append('withoutData')
56                 else:
57                     tempList.append('withoutData')
58         else:
59             tempList.append('notfound')
60         return tempList[0]
61
62 df=pd.read_csv('doubanMovies_IMDBScore.csv')  #打开豆瓣上爬取到的电影列表文件
63 piaofangList=[]  #初始化票房列表
64 errorNum=0  #初始化错误数
65 for i in range(0,len(df)):
66     try:
67         temp=df.ix[i,'title']
68         temp=temp.decode('gbk').encode('utf-8')  #进行编码格式转换
69         piaofangList.append(getPiaofang(temp))  #调用getPiaofang函数,得到票房数据
70     except:
71         errorNum+=1  #出错,则错误数加1
72         piaofangList.append('error')  #将票房数字标记为'error'
73         print 'error No.',errorNum
74     finally:
75         df1=DataFrame({'title':df.ix[:i,'title'],'piaofang':piaofangList})
76         df1.to_csv('test.csv',index=False)
77         print i+1  #打印标记

发表于 2016-05-16 18:04 PistonType 阅读(...) 评论(...) 编辑 收藏

刷新评论刷新页面返回顶部

1-2 用Python爬取猫眼票房网上的电影票房信息相关推荐

  1. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化

    python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化 一.抓取数据 需要的库 request库 响应http请求 json库 将文本保存成json形式 pyquery 类似JQ ...

  2. python爬取猫眼正在热映电影

    用python写爬虫爬取需要的数据比较容易,以Python简洁的语法和一大波成熟的库,写起来相当的快 python的版本以及使用的库 Python 3.6.4 requests lxml 这次主要是爬 ...

  3. python爬取电影评分_用Python爬取猫眼上的top100评分电影

    代码如下: # 注意encoding = 'utf-8'和ensure_ascii = False,不写的话不能输出汉字 import requests from requests.exception ...

  4. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化

    python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化 一.抓取数据 需要的库 request库 响应http请求 json库 将文本保存成json形式 pyquery 类似JQ ...

  5. (伪)Python爬取猫眼电影(反反爬虫过程中遇到的坑)

    Python爬取猫眼电影 1.打开一个猫眼电影的URL,例如本月的较火的电影<毒液:致命守护者>http://maoyan.com/films/42964 直接F12,查看审核元素,发现上 ...

  6. python爬取猫眼电影数据

    每天一点点,记录学习每一步 近期爬虫项目: 1:python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载 2:python爬虫爬取百度贴吧图片,requests方法 3:pyt ...

  7. python猫眼电影分析_用Python 爬取猫眼电影数据分析《无名之辈》

    前言 作者: 罗昭成 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e7 ...

  8. 利用python爬取猫眼电影,分析《大侦探皮卡丘》|凹凸数读

    利用python爬取猫眼电影,分析<大侦探皮卡丘>,看看当皮卡丘长出绒毛,"丑拒"还是"真香"都在猫眼短评里了. 本文首发于微信公众号<凹凸数 ...

  9. Python爬取猫眼电影TOP100榜

    Python爬取猫眼电影TOP100榜 兴趣点: 这个没什么特别的兴趣,只是单纯爬猫眼练手的人太多了,所以我也打算加入他们,对猫眼员工说一声不好意思了,哈哈哈! 爬取网址: 传送门:https://m ...

  10. python爬取贝壳找房之北京二手房源信息

    所用库 requests xpath解析库 multiprocessing多进程 pandas库用于保存csv文件 实战背景 本文首发于:python爬取贝壳找房之北京二手房源信息 主要是为了做北京二 ...

最新文章

  1. 树莓派4外置wifi天线_树莓派打造最强车载娱乐终端(1)音乐和WiFi
  2. word2vec (一) 简介与训练过程概要
  3. 数据浪潮上的IP雄鹰
  4. 一个小小的String问题引发的血案
  5. Git .gitignore文件忽略(自己做过测试了)
  6. 【工业级串口服务器E810-DTU】RS485/RS232转以太网,双向透明传输
  7. android组件间共享数据的常用方法
  8. 线程的状态和基本操作
  9. (3)JavaScript 的注释
  10. es6 Generator函数的含义
  11. domain name
  12. Spring Cloud Zuul路由网关(学习总结)
  13. python seaborn教程_Seaborn官方教程中文教程(一)
  14. 黄太吉如何把煎饼卖到4000万估值
  15. 全自动过滤器:全自动叠片过滤器工作原理及应用范围
  16. 一个IP账号,为啥通过路由器就可供多人同时使用?
  17. 二、流水线的执行流程
  18. Android手机之 App2SD 和 App2SD+ 教程
  19. 东方标准讲师谈“JAVA之我注六经”(上)
  20. 网站被百度K了怎么办

热门文章

  1. UiPath如何下载
  2. 专科计算机教育的现状,探析高职计算机专业英语教学现状
  3. Docker存储驱动之Btrfs简介
  4. 家用汽车维修5:换正时带和水泵
  5. 读书笔记 - 《经济学通识》
  6. error:unable to access jarfile cracker2017.jar解决方法
  7. 银海系统服务器登录不上,解决登录问题 - Skype for Business | Microsoft Docs
  8. 中南大学2021计算机专硕复试分数线,2021考研:中南大学复试分数线已公布
  9. linux虚拟机安装配置vsftpd,Linux 使用 vsftpd 搭建 FTP 服务器
  10. 手机充值 html,仿京东手机充值进度导航_html/css_WEB-ITnose