python爬虫学习第三十四天

来源:互联网 发布:淘宝店铺o2o 编辑:程序博客网 时间:2024/05/17 01:40

今天首先继续昨天未完成的selenium部分,主要是重定向问题

客户端重定向是在服务器将页面内容发送到浏览器之前,由浏览器执行 JavaScript 完成的
页面跳转,而不是服务器完成的跳转。当使用浏览器访问页面的时候,有时很难区分这两
种重定向。由于客户端重定向执行很快,加载页面时你甚至感觉不到任何延迟,所以会让 你觉得这个重定向就是一个服务器端重定向

我们可以通过selenium用一种智能的方法来检测客户端重定向是否完成,首先从页面开始加载时就“监视”DOM 中的一个元素,然后重复调用这个元素直到Selenium 抛出一个 StaleElementReferenceException 异常;也就是说,元素不在页面的 DOM 里了,说明这时 网站已经跳转

练习 智能检测客户端重定向是否完成

from selenium import webdriver import time from selenium.webdriver.remote.webelement import WebElement from selenium.common.exceptions import StaleElementReferenceException def waitForLoad(driver):    elem = driver.find_element_by_tag_name("title")    count = 0    while True:        if(count>20):            print("Time Overflow")            return        count+=1        time.sleep(.5)        try:            elem = driver.find_element_by_tag_name("title")        except StaleElementReferenceException as e:            return    passdriver = webdriver.PhantomJS(executable_path="C:/Users/gaoji/Documents/python/phantomjs-2.1.1-windows/bin/phantomjs")driver.get("http://pythonscraping.com/pages/javascript/redirectDemo1.html")waitForLoad(driver)print(driver.page_source)

到这里selenium的功能就介绍完成了
下一个大的内容:图像识别与文字处理

将图像翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR) 。可以 实现 OCR 的底层库并不多,目前很多库都是使用共同的几个底层 OCR 库,或者是在上面 进行定制。包装后的OCR库常常会变得非常复杂。

这里使用的图像处理库主要有两个:lpillow 和 Tesseract,另外如果要训练Tesseract还需要用到Numpy这个库。。NumPy 是一个非常强大的库,具有大量线性代数 以及大规模科学计算的方法。因为 NumPy 可以用数学方法把图片表示成巨大的像素数组, 所以它可以流畅地配合 Tesseract 完成任务。
安装这两个库使用pip命令就可以了

其中,特别强调tesseract 是一个 Python 的命令行工具,不是通过 import语句导入的库。安装之后,要用 tesseract 命令在 Python 的外面运行

大多数时候我们处理的文字都是格式规范的文字图片,格式规范的文字图片大概有以下的特点:

• 使用一个标准字体(不包含手写体、草书,或者十分“花哨的”字体)
• 虽然被复印或拍照,字体还是很清晰,没有多余的痕迹或污点
• 排列整齐,没有歪歪斜斜的字
• 没有超出图片范围,也没有残缺不全,或紧紧贴在图片的边缘

一般电脑上打出的文字经过比较规整的截图,得到的就是格式规范的文字图片
随便到网上截图了一段文字如下:
这里写图片描述
让我们来试试即OCR的结果

As the late, great Dr Seuss once said, ‘there is no one alive who is
you-er than you.” At Google, we know this statement is truer than
true. Sure, we all have many things in common, but none of us has
quite the same mix of passions, interests and goals as the next
person. And, while we each keep up to date on the things

that matter to us in different ways-social media, news apps, talking
lking to friends-

可以看出效果非常好

今天先到这里啦,打卡~