1-2 用Python爬取猫眼票房网上的电影票房信息
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 #打印标记
1-2 用Python爬取猫眼票房网上的电影票房信息相关推荐
- python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化
python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化 一.抓取数据 需要的库 request库 响应http请求 json库 将文本保存成json形式 pyquery 类似JQ ...
- python爬取猫眼正在热映电影
用python写爬虫爬取需要的数据比较容易,以Python简洁的语法和一大波成熟的库,写起来相当的快 python的版本以及使用的库 Python 3.6.4 requests lxml 这次主要是爬 ...
- python爬取电影评分_用Python爬取猫眼上的top100评分电影
代码如下: # 注意encoding = 'utf-8'和ensure_ascii = False,不写的话不能输出汉字 import requests from requests.exception ...
- python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化
python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化 一.抓取数据 需要的库 request库 响应http请求 json库 将文本保存成json形式 pyquery 类似JQ ...
- (伪)Python爬取猫眼电影(反反爬虫过程中遇到的坑)
Python爬取猫眼电影 1.打开一个猫眼电影的URL,例如本月的较火的电影<毒液:致命守护者>http://maoyan.com/films/42964 直接F12,查看审核元素,发现上 ...
- python爬取猫眼电影数据
每天一点点,记录学习每一步 近期爬虫项目: 1:python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载 2:python爬虫爬取百度贴吧图片,requests方法 3:pyt ...
- python猫眼电影分析_用Python 爬取猫眼电影数据分析《无名之辈》
前言 作者: 罗昭成 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e7 ...
- 利用python爬取猫眼电影,分析《大侦探皮卡丘》|凹凸数读
利用python爬取猫眼电影,分析<大侦探皮卡丘>,看看当皮卡丘长出绒毛,"丑拒"还是"真香"都在猫眼短评里了. 本文首发于微信公众号<凹凸数 ...
- Python爬取猫眼电影TOP100榜
Python爬取猫眼电影TOP100榜 兴趣点: 这个没什么特别的兴趣,只是单纯爬猫眼练手的人太多了,所以我也打算加入他们,对猫眼员工说一声不好意思了,哈哈哈! 爬取网址: 传送门:https://m ...
- python爬取贝壳找房之北京二手房源信息
所用库 requests xpath解析库 multiprocessing多进程 pandas库用于保存csv文件 实战背景 本文首发于:python爬取贝壳找房之北京二手房源信息 主要是为了做北京二 ...
最新文章
- 基于K-gram的winnowing特征提取剽窃查重检测技术(概念篇)
- 如何使Git“忘记”已跟踪但现在位于.gitignore中的文件?
- Django的学习需要掌握的一些基础和初步搭建自己的框架
- Bash Shell学习笔记五
- 【7】jQuery学习——入门jQuery选择器之过滤选择器-可见性过滤选择器
- LeetCode 134. 加油站(贪心)
- 深入jar包:从jar包中读取资源文件
- 工具使用-curl/wget
- Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)(转)
- map转换成JSON的方法
- 北京无人驾驶路测进入“主驾无人”阶段
- 服务器日志默认存放位置,系统日志和IIS日志存放路径
- Coverity代码静态检测工具导出Excel文件
- Macintosh30周年回顾视频 ---转自36kr
- NUC980开源项目38-4g上网
- 关于mac苹果电脑装win10系统发热严重的解决方法
- 【翻译】Unity2017.2.0f3 版本发布说明
- MODBUS通信协议代码
- java 完整子图_用JAVA求解最大连通子图
- 洛谷P1914题解——(本地测试AC但是交题爆零全WA)使用getchar();
热门文章
- CuInS2/ZnS-PEG量子点|量子点PEG-ZnS/CdSe|PEG修饰的近红外二区量子点ZnO量子点
- 基于开源软件打造企业网络安全
- python基础(中)
- window11 网络突然就用不了,系统更新网络就用不了了,DNS服务器可能不可用
- 人民日报海外版总编辑詹国枢谈新闻写作技巧:五句话妙手著文章
- springMVC 一些文章
- [一场梦转无踪 为什么美梦有始无终]香格里拉夏宫自助茶点
- 【SpringBoot项目No qualifying bean of type ‘×××Mapper‘ available:的错误解决】
- 计算机毕业设计Java宠物收养管理系统(源码+系统+mysql数据库+lw文档)
- AES加密解密C语言实现