python学习笔记-爬虫02

#======================动态HTML====================
# JavaScrapt
# jQuery
# Ajax
# DHTML
# Python采集动态数据
    # 从Javascript代码入手采集
    # 不推荐:Python第三方库运行JavaScript,直接采集你在浏览器看到的页面

##=====================Selenium + PhantomJS===================
# Selenium: web自动化测试工具
    # 自动加载页面
    # 获取数据
    # 截屏
    # 安装: pip install selenium==2.48.0
    # 官网: http://selenium-python.readthedocs.io/index.html
# PhantomJS(幽灵),基本已被chrome替代
    # 基于Webkit 的无界面的浏览器 
    # 官网: http://phantomjs.org/download.html
    
# Selenium 库有有一个WebDriver的API
# WebDriver可以跟页面上的元素进行各种交互,用它可以来进行爬取

'''
通过webdriver操作PhantomJS进行查找
'''
from selenium import webdriver
import time
# 通过Keys模拟键盘
from selenium.webdriver.common.keys import  Keys
# 操作哪个浏览器就对哪个浏览器建一个实例
# 自动按照环境变量查找相应的浏览器
driver = webdriver.PhantomJS()
# 如果浏览器没有在相应环境变量中,需要指定浏览器位置
driver.get("http://www.baidu.com")
# 一般根据网络速度等待若干秒
time.sleep(5)
# 通过函数查找title标签
print("Title: {0}".format(driver.title))

#=====================chrome + chromedriver=====================
    # 下载安装chrome: 下载+安装
    # 下载安装chromedriver:
# Selenium操作主要分两大类:
    # 得到UI元素
        # find_element_by_id
        # find_elements_by_name
        # find_elements_by_xpath
        # find_elements_by_link_text
        # find_elements_by_partial_link_text
        # find_elements_by_tag_name
        # find_elements_by_class_name
        # find_elements_by_css_selector
    # 基于UI元素操作的模拟
        # 单击
        # 右键
        # 拖拽
        # 输入
        # 可以通过导入ActionsChains类来做到

from selenium import webdriver
import time
from selenium.webdriver.common.keys import  Keys

# 可能需要手动添加路径
driver = webdriver.Chrome()
url = "http://www.baidu.com"
driver.get(url)
text = driver.find_element_by_id('wrapper').text
print(driver.title)
# 得到页面的快照
driver.save_screenshot('index.png')
# id="kw" 的是百度的输入框,我们得到输入框的ui元素后直接输入“大熊猫"
driver.find_element_by_id('kw').send_keys(u"大熊猫")
# id="su"是百度搜索的按钮,click模拟点击
driver.find_element_by_id('su').click()
time.sleep(5)
driver.save_screenshot("daxiongmao.png")
#获取当前页面的cookie
print(driver.get_cookies())
# 模拟输入两个按键 ctrl+ a
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
#ctr+x 是剪切快捷键
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x')
driver.find_element_by_id('kw').send_keys(u'航空母舰')
driver.save_screenshot('hangmu.png')
driver.find_element_by_id('su').send_keys(Keys.RETURN)
time.sleep(5)
driver.save_screenshot('hangmu2.png')
# 清空输入框 , clear
driver.find_element_by_id('kw').clear()
driver.save_screenshot('clear.png')
# 关闭浏览器
driver.quit()

##========================验证码=============================
# 验证码:防止机器人或者爬虫
# 分类:
        # 简单图片,
        # 极验,官网:www.geetest.com
        # 图片选择,12306
        # 电话
        # google验证
        
# 验证码破解:
        # 通用方法:
            # 下载网页和验证码
            # 手动输入验证号码
        # 简单图片
            # 使用图像识别软件或者文件识别软件
            # 可以使用第三方图像验证码破解网站,www.chaojiying.com
        # 极验,官网:www.geetest.com
            # 破解比较麻烦
            # 可以模拟鼠标等移动
            # 一直在进化,机器学习
        # 图片选择,12306
        # 电话:语音识别,降噪,人工智能
        # google验证
        
# Tesseract
# 机器视觉领域的基础软件
# OCR:OpticalChracterRecognition,光学文字识别
# Tesseract:一个ocr库,google赞助
    # 安装:
        # windows
        # Mac: brew install tesseract
        # Linux: apt-get install tesseract-ocr
        # 安装完成后需要设置环境变量
    tesseract xxx.jpg xx.txt
    # python使用,安装完成后还需要pytesseract
        # pip install pytesseract
    # 识别图片案例

import pytesseract as pt
from PIL import Image

image = Image.open("xxx.jpg")
#调用tesseract,把图片转化成文字
text = pt.image_to_string(image)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值