&

[root@xxn maoyan]# cat cat.py
#!/usr/bin/env python
#coding:utf-8import requests
from bs4 import BeautifulSoupdef movieurl(url):"""用来获取电影的单页url地址"""headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.3964.2 Safari/537.36",}response = requests.get(url,headers=headers,timeout=10)soup= BeautifulSoup(response.text,'lxml')href = soup.find_all('div',class_="channel-detail movie-item-title")[0]movieurl = "http://maoyan.com%s" % href.find('a')['href']return movieurldef moveinfo(url):"""得到电影的中文名,票房单位。如果票房单位没数据,说明票房"暂无"。"""headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.3964.2 Safari/537.36",}response = requests.get(url, headers=headers,timeout=5)soup = BeautifulSoup(response.text, 'lxml')Chinesename = soup.find('div',class_="movie-brief-container").h3.stringtry:boxofficeunit = soup.find_all('div',class_="movie-index-content box")[0].find('span',class_='unit').stringexcept:boxofficeunit = 0return Chinesename,boxofficeunitif __name__ == '__main__':Moviename = input("请输入电影的英文名字:")Moviename = Moviename.replace(' ','+')url = "http://maoyan.com/query?kw=%s&type=0" % MovienameChinesename, boxofficeunit = moveinfo(movieurl(url))print Chinesename,boxofficeunit

&

[root@xxn maoyan]# cat maoyan.py
#!/usr/bin/env python
# coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import random
from PIL import Image
import pytesseract
import os
import catdef imagedownlod(url):"""把电影单页做个截图保存,因为我们要取票房数据,所以不进行图片载入,加快速度"""dcap = dict(DesiredCapabilities.PHANTOMJS)USER_AGENTS=['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4882.400 QQBrowser/9.7.13059.400']#从USER_AGENTS列表中随机选一个浏览器头,伪装浏览器dcap["phantomjs.page.settings.userAgent"] = (random.choice(USER_AGENTS))driver = webdriver.PhantomJS(desired_capabilities=dcap)# 不载入图片,爬页面速度会快很多dcap["phantomjs.page.settings.loadImages"] = False # 禁止加载图片driver = webdriver.PhantomJS(desired_capabilities=dcap)driver.set_window_size(1366, 3245)driver.get(url)driver.save_screenshot("maoyan.png")def crop_image(image_path,crop_path):"""本来想利用webdriver来得到票房元素的位置,然后根据位置和元素大小做数字运算求出来4个参数,位置可以正常得到,但是图片大小不一,所以抠图会有问题所以换种方式:我把每个页面截图修改成统一大小,因为票房的位置是固定的,所以这样可以使爬虫更强健。"""# 计算抠取区域的绝对坐标left = 668top = 388right = 668+158bottom = 388+54# 打开图片,抠取相应区域并存储img = Image.open(image_path)out = img.resize((1366, 3245),Image.ANTIALIAS) #resize image with high-qualityout.save('maoyannew.png')im = Image.open('maoyannew.png')im = im.crop((left, top, right, bottom))im.save(crop_path)os.remove('maoyannew.png')def words(image):"""因为我们对不同大小的图片进行归一化处理,所以有些图片pytesseract不能识别数字所以我首先进行灰度处理,然后使用config="-psm 8 -c tessedit_char_whitelist=1234567890"这个参数"""im = Image.open(image).convert('L')im.save(image)number =  pytesseract.image_to_string(Image.open(image),config="-psm 8 -c tessedit_char_whitelist=1234567890")os.remove(image)return numberif __name__ == '__main__':Moviename = input("请输入电影的英文名字:")Moviename = Moviename.replace(' ','+')url = "http://maoyan.com/query?kw=%s&type=0" % MovienameChinesename,boxofficeunit = cat.moveinfo(cat.movieurl(url))imagedownlod(cat.movieurl(url))crop_image('maoyan.png','piaofang.png')print words('piaofang.png')os.remove('maoyan.png')

&

[root@xxn maoyan]# cat catseye.py
#!/usr/bin/env python
# coding=utf-8
import cat
import maoyan
import sys
import os
reload(sys)
sys.setdefaultencoding('utf8')
def main():moviename = input("请输入电影的英文名字:")Moviename = moviename.replace(' ','+')Moviename = moviename.replace(':','%3A')url = "http://maoyan.com/query?kw=%s&type=0" % MovienameChinesename,boxofficeunit = cat.moveinfo(cat.movieurl(url))if boxofficeunit == 0:"""如果票房单位为0也就是不存在,那么电影票房也就是暂无,所以我们就不需要抠图识别数字了"""print "您搜索的电影英文名字:" + movienameprint "您搜索的电影中文名字:" +  Chinesenameprint "你搜索的电影票房:" + '暂无'else:maoyan.imagedownlod(cat.movieurl(url))maoyan.crop_image('maoyan.png','piaofang.png')number = maoyan.words('piaofang.png')print "您搜索的电影英文名字:" + movienameprint "您搜索的电影中文名字:" +  Chinesenameprint "你搜索的电影票房:" + str(number2) + str(boxofficeunit)os.remove('maoyan.png')
if __name__ == '__main__':main()

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!交流经验!自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

测试:

10分钟用python实现给定电影英文名,在猫眼上爬到中文名和票房相关推荐

  1. 用python实现给定电影英文名,在猫眼上爬到中文名和票房

    [root@xxn maoyan]# cat cat.py #!/usr/bin/env python #coding:utf-8import requests from bs4 import Bea ...

  2. python语言中整型对应的英文名_python实现给定电影英文名,在猫眼上爬到中文名和票房...

    &[root@xxn maoyan]# cat cat.py #!/usr/bin/env python #coding:utf-8 import requests from bs4 impo ...

  3. python实现给定电影英文名,在猫眼上爬到中文名和票房

    & [root@xxn maoyan]# cat cat.py #!/usr/bin/env python #coding:utf-8import requests from bs4 impo ...

  4. 零基础小白10分钟用Python搭建小说网站!网友:我可以!

    都说Python什么都能做,本来我是不信的!直到我在CSDN站内看到了一件真事儿:一位博主贴出了自己10分钟用Python搭建小说网站的全过程!全程只用了2步操作,简直太秀了!!-- 第一步:爬取小说 ...

  5. Python Train_出乎意料的简单!10分钟用python建立人工智能预测模型

    介绍 鉴于Python在过去几年中的兴起及其简洁性,对于数据科学领域的Python学家意义重大.这篇文章会用最容易的方式引导你更快地构建第一个预测模型. 出乎意料的简单!10分钟用python进行人工 ...

  6. python如何爬取网页视频_快就完事了!10分钟用python爬取网站视频和图片

    原标题:快就完事了!10分钟用python爬取网站视频和图片 话不多说,直接开讲!教你如何用Python爬虫爬取各大网站视频和图片. 638855753 网站分析: 我们点视频按钮,可以看到的链接是: ...

  7. 10分钟用Python爬取最近很火的复联4影评

    10分钟用Python爬取最近很火的复联4影评 欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! <复仇者联盟4:终局之战>已经上映快三个星期了,全球票房破24亿美元,国内票房破 ...

  8. 10分钟用Python告诉你两个机器人聊天能聊出什么火花

    10分钟用Python告诉你两个机器人聊天能聊出什么火花 欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 现在不是讲各种各样的人工智能嘛,AI下棋,AI客服,AI玩家--其实我一直很好奇, ...

  9. gem意思_出道10年,很多人不知道邓紫棋英文名GEM背后含义

    原标题:出道10年,很多人不知道邓紫棋英文名GEM背后含义 如果没有太关注港台歌手,大家对邓紫棋的出道.成名印象大概是2014年1月,她参加湖南卫视<我是歌手第二季>节目并演唱了众多让人印 ...

最新文章

  1. java得出两个日期之间所有日期
  2. python中write的用法_Python中操作文件之write()方法的使用教程
  3. HtmlParser中的各种Filter(1)
  4. 不要把HANA跟BW混为一谈
  5. 深度学习--Keras总结
  6. Maven依赖的是本地工程还是仓库jar包?
  7. CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
  8. 安装oculus运行时出现问题_成品天沟在安装时会出现哪些问题?
  9. linux下添加磁盘
  10. 比较使用LUT和不使用LUT的颜色空间转换的处理时间差异
  11. 拓端tecdat|Mac系统R语言升级后无法加载包报错 package or namespace load failed in dyn.load(file, DLLpath = DLLpath,
  12. Windows7 的激活命令小结
  13. 中国34个省级行政区2000年-2021年逐月NDVI统计分析结果
  14. 从内存原理的角度深入解析 JS 中变量存储在堆中还是栈中
  15. kafka的全面知识点
  16. 位图矢量化:Potrace的应用
  17. macbookpro 序列号查询 香港苹果官网
  18. 摄像头实时视频网页播放
  19. html导出excel表头多了一行空行,excel中有时候表格下面有很多空行,下拉条滚动一点就过了很多行,怎么取消掉多余的行啊?(excel表头每页都显示)...
  20. 2016年生物3D打印八大重要成果

热门文章

  1. JXLS快速实现报表输出
  2. 骑行运动耳机哪个好,最值得入手的五款骑行运动耳机推荐
  3. 内存数据库、磁盘数据库、分布式数据库区别
  4. 爬虫-招聘系列1----51Job
  5. 详细解说MySQL中BLOD和TEXT字段类型二者概念及区别
  6. c++持续集成工具Jenkins
  7. 言简意赅python系列---if not x: 和 if x is not None: 和 if not x is None: 的区别
  8. STM32串口之奇偶校验设置
  9. linux管道pipe 示例
  10. X61终于成功安装Lion,不容易啊