python语言中整型对应的英文名_python实现给定电影英文名,在猫眼上爬到中文名和票房...
&[root@xxn maoyan]# cat cat.py
#!/usr/bin/env python
#coding:utf-8
import requests
from bs4 import BeautifulSoup
def 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 movieurl
def 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.string
try:
boxofficeunit = soup.find_all('div',class_="movie-index-content box")[0].find('span',class_='unit').string
except:
boxofficeunit = 0
return Chinesename,boxofficeunit
if __name__ == '__main__':
Moviename = input("请输入电影的英文名字:")
Moviename = Moviename.replace(' ','+')
url = "http://maoyan.com/query?kw=%s&type=0" % Moviename
Chinesename, 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 cat
def 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 = 668
top = 388
right = 668+158
bottom = 388+54
# 打开图片,抠取相应区域并存储
img = Image.open(image_path)
out = img.resize((1366, 3245),Image.ANTIALIAS) #resize image with high-quality
out.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 number
if __name__ == '__main__':
Moviename = input("请输入电影的英文名字:")
Moviename = Moviename.replace(' ','+')
url = "http://maoyan.com/query?kw=%s&type=0" % Moviename
Chinesename,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" % Moviename
Chinesename,boxofficeunit = cat.moveinfo(cat.movieurl(url))
if boxofficeunit == 0:
"""
如果票房单位为0也就是不存在,那么电影票房也就是暂无,所以我们就不需要抠图识别数字了
"""
print "您搜索的电影英文名字:" + moviename
print "您搜索的电影中文名字:" + Chinesename
print "你搜索的电影票房:" + '暂无'
else:
maoyan.imagedownlod(cat.movieurl(url))
maoyan.crop_image('maoyan.png','piaofang.png')
number = maoyan.words('piaofang.png')
print "您搜索的电影英文名字:" + moviename
print "您搜索的电影中文名字:" + Chinesename
print "你搜索的电影票房:" + str(number2) + str(boxofficeunit)
os.remove('maoyan.png')
if __name__ == '__main__':
main()
测试:
python语言中整型对应的英文名_python实现给定电影英文名,在猫眼上爬到中文名和票房...相关推荐
- python语言中整型对应的英文_Python基本数据类型详细介绍(转)
1.空(None)表示该值是一个空对象,空值是Python里一个特殊的值,用None表示.None不能理解为0,因为0是有意义的,而None是一个特殊的空值. 2.布尔类型(Boolean) 在 Py ...
- python语言中整型对应的英文是什么-12.Python数值类型(整形、浮点型和复数)及其用法...
实际开发中,我们经常需要使用数字记录游戏中用户的得分.游戏中角色的生命值.伤害值等信息,Python 语言提供了数值类型用于保存这些数值. 需要注意的是,Python 中这些数值类型都是不可改变的,也 ...
- 用python实现给定电影英文名,在猫眼上爬到中文名和票房
[root@xxn maoyan]# cat cat.py #!/usr/bin/env python #coding:utf-8import requests from bs4 import Bea ...
- 10分钟用python实现给定电影英文名,在猫眼上爬到中文名和票房
& [root@xxn maoyan]# cat cat.py #!/usr/bin/env python #coding:utf-8import requests from bs4 impo ...
- python实现给定电影英文名,在猫眼上爬到中文名和票房
& [root@xxn maoyan]# cat cat.py #!/usr/bin/env python #coding:utf-8import requests from bs4 impo ...
- c语言整形符号位_C语言中整型无符号二进制数的表示问题
龙源期刊网 http://www.qikan.com.cn C 语言中整型无符号二进制数的表示问题 作者:马红旭 来源:<电子技术与软件工程> 2015 年第 20 期 摘 要 文章解决的 ...
- python语言中不属于组合数据类型的是_python的基本语法(组合数据类型),基础...
python的基础语法(组合数据类型) 一,list列表 python 语言中使用组合数据类型进行操作, 最常见的组合数据类型之一~就是 list 列表. 1 什么是列表? 列表是 组合数据类型 中的 ...
- C语言中整型浮点型在计算机中的存储
第一次写博客,遣词造句有点菜,算是一次简单梳理,慢慢学习人家的博客风格,随着学习的深入再做修改. 本次学习的是C语言在VS下的编译调试,对于初学者两说,首先说一下如何监控变量,以及监控变量在内存中的存 ...
- C语言中整型在计算机中的存储
一 . 整型的表示 1.字面值后面加上L(l)表示long长整型 2.字面值后面加上U(u)表示usigned整型值 3.十进制123 ... 4.八进制,以0开头,如0123,0754 ... ...
最新文章
- Solr嵌套子文档的弊端以及一种替代方式
- Outlook中自定义新邮件提醒
- hikvision v2.3控件网页demo_昆山UI网页设计师专业培训班 UI设计好就业吗?
- C# MD5加密解密帮助类
- boost的multi_index的使用
- 安卓9.0官方系统升级包_华为、荣耀公布可升级安卓10.0机型,你的手机在名单之内吗?...
- 前端学习(3172):react-hello-react之实现底部功能
- n型半导体和p型半导体的区别_PNP和NPN的区别和判别方法,网友:太厉害了!终于有人能讲明白了...
- 为啥有的人能受穷,却不能吃苦?
- 前台 时不时报 could not proxy request_长春中考成绩不理想可以报的高中
- WAP开发资料站(最新更新)
- 警告:Vista存高风险 不宜过早安装
- java程序a-z b-y_请完成下列Java程序:对大写的26个英文字母加密,从键盘输入一个大写字母串..._考试资料网...
- 在线LaTeX公式编辑器(备忘)
- 360全景图PS更换天空背景
- C#panel渐变绘制
- 利用pygame实现大鱼吃小鱼游戏
- powerBI使用概览
- 少室山论道——天下武功
- DecisionCurve决策曲线分析法
热门文章
- 这些证书可以在复试时加分!有机会一定要考!
- 修改内核printk函数打印等级
- 计算平均成绩(PTA)
- 配置与管理Samba服务器
- 电视HDMI接口是什么 有什么用 怎么用
- 我是一只小僵尸java,我的世界:出生意味着“死亡”,假如你是一只僵尸,该如何活下去...
- android xutils框架缓存图片,xUtils框架的使用
- 冷链物流解决方案案例-基因检测机构检爱网
- java 8 stream入门_java8 Stream 流快速入门
- Segd 2.1格式注释