猫眼爬取专业评分的python
2017-05-22 10:27
288 查看
最近,需要爬取猫眼的专业评分数据,因为猫眼的专业评分都是经过加密的,很难直接爬取,总的几个方案。 一,就是利用大量的爬取猫眼奇怪的符号,通过规律来破解,找了网上很多资料,后来一看,全是方框.方框,直接放弃 二,利用python的图片图例功能,爬取专业评分的图像,然后二值化,再转化为矢量,来训练模型,通过svm来分类,听过程就知道,很麻烦,但是训练结果集肯定很好,因为不像手写数字那么麻烦。 三,利用pyhon自带的识别二维码的库,但在这过程中也出现了很多bug,搞了好久,网上找各种资料,七拼八凑,很多都只是一点点,所以自己写个完整的,望后来人少走弯路 前提是要有PIL,selenium那个简单,就不说了,这两个都能直接用pip下载,坑的是下一个 一.安装pytesseract 直接用pip命令,pipinstall pytesseract 二.安装tesseract-ocr 这个直接解压到默认位置就行了 三.查看路径 看看C:/ProgramFiles (x86)/Tesseract-OCR/tesseract.exe这个目录下有没有 四.修改配置文件 在python的安装目录下有个lib包,Lib\site-packages\pytesseract顺着这个路径找下去会出现这个pytesseract.py,点开,找到 把tesseract的路径改成刚刚查看的路径 五,代码
#!/usr/bin/python # -*- coding:utf-8 -*- from selenium import webdriver from PIL import Image import datetime from pytesseract import * driver = webdriver.Firefox() # 创建webdriver对象 url = "http://piaofang.maoyan.com/movie/248683?_v_=yes" # 定义目标url driver.get(url) # 打开目标页面 # 定义截图函数 def snap_shot(url, image_path, scroll_top=90): # 打开页面,窗口最大化 driver.get(url) driver.maximize_window() # 调用JS脚本滚动页面 scroll_js = "var q=document.documentElement.scrollTop={}".format(scroll_top) driver.execute_script(scroll_js) # 截图存储 driver.save_screenshot(image_path) # 定义抠图函数 def crop_image(image_path, crop_path, scroll_top=90): # 根据xpath来获取页面元素及其位置、尺寸,我这里是自己定义的,你可以跟你你电脑的分辨率自己调整 # element = driver.find_element_by_xpath(pattern_xpath) # location = element.location # size = element.size # 计算抠取区域的绝对坐标 #这个左是截的图理你的整个浏览器屏幕的上下左右,自己的调整,我的电脑分辨率是这样的 left = 290 top = 150 right = 450 bottom = 180 print (left,top,right,bottom) # 打开图片,抠取相应区域并存储 im = Image.open(image_path) im = im.crop((left, top, right, bottom)) im = im.convert('L') # # 这些处理过程不需要了,加了的话反而识别不出来 # box = (8, 6, 39, 25) # region = im.crop(box) # # region.show() # threshold = 140 # 阈值设为200 # table = [] # for i in range(256): # if i < threshold: # table.append(0) # else: # table.append(1) # out = region.point(table, '1') # out.show() # out.save("snap_shot/train/digit_2.png") #直接保存 im.save(crop_path) # 获取当前时间戳 now = datetime.datetime.now() now_sign = str(now.day)+str(now.hour)+str(now.minute)+str(now.second) # 启动截图函数,获取当前页面 snap_shot_path_1 = "snap_shot/maoyan_{0}_{1}.png".format('1', now_sign) snap_shot(url, snap_shot_path_1, scroll_top=0) # 启动抠图函数 pattern = "/html/body/div[2]/div/section[1]/div[1]/div[2]/div[2]/p[5]" crop_path = "snap_shot/crop/current_piaofang7.png" crop_image(snap_shot_path_1, crop_path, scroll_top=0) #到这里,抠图过程完成,接下来就是验证看shownum.py
#!/usr/bin/python# -*- coding:utf-8 -*-from selenium import webdriverfrom PIL import Imageimport datetimefrom pytesseract import *def shownumber():im=Image.open('snap_shot/train/current_piaofang7.png')im.show()print(pytesseract.image_to_string(im))if __name__ == '__main__':shownumber()
对了,再下载一个火狐浏览器,下面是结果图
相关文章推荐
- PyCharm 2.0 发布,专业的Python开发工具
- 对比赛评分进行现场管理及展示的专业系统_评委计分系统-双屏标准版_主要操作部分图片演示
- Python利用朴素贝叶斯进行评分的分类
- Python开发专业工具推荐
- 利用python爬虫技术获取每天每场的每位球员NBA数据以及每日范特西评分
- Python开发专业工具推荐
- python爬虫之豆瓣电影评分
- 用python+selenium抓取豆瓣电影中的正在热映前12部电影并按评分排序
- 用python+selenium抓取豆瓣读书中最受关注图书并按照评分排序
- 用PowerPoint制作比赛评分系统 [评委计分系统-双屏专业版],欢迎下载!!
- 服务器端开发(Python/C++)-今日头条-拉勾网-最专业的互联网招聘平台
- 基于Python的豆瓣电影评分查询器
- Python利用朴素贝叶斯进行评分的分类
- Python_运算符、专业术语
- 用PowerPoint制作比赛评分系统,欢迎下载!比赛评分专业展示系统,使用VC++制作控制台,PPT集成技术佼佼者,全国唯一
- 比赛评分公开展示系统_[评委计分系统v3-双屏标准版]与[评委计分系统v3-双屏专业版]的差异
- 木其工作室(专业程序代写服务)[转]每个程序员都应该学习使用Python或Ruby
- Python crawler 豆瓣电影排行榜评分
- pycharm IDEA专业版2016.3.2版本和 python3.5.0 win7 64位安装包 百度云资源共享 及安装和编辑器注册图录
- Python爬虫豆瓣读书评分9分以上榜单