Python爬虫selenium模块

简介: Python爬虫selenium模块

安装

pip install selenium

官方文档:https://www.seleniumhq.org/docs/


测试页面

http://www.pythonscraping.com/pages/javascript/ajaxDemo.html


报错:warnings.warn(‘Selenium support for PhantomJS has been deprecated, please use headless ’

解决: 安装版本2


pip install "selenium < 3"

简单示例解析javascript

from selenium import webdriver
from bs4 import BeautifulSoup
import time
# 显示等待页面加载
def getPage1():
    url = "http://www.pythonscraping.com/pages/javascript/ajaxDemo.html"
    driver = webdriver.PhantomJS()
    driver.get(url)
    time.sleep(1)  # 设置等待时间
    # 获取内容
    content = driver.find_element_by_id("content")
    print(content.text)
    # 通过bs解析
    html = driver.page_source  # 源代码字符串
    soup = BeautifulSoup(html, "html.parser")
    tag = soup.find(id="content")
    print(tag)
    driver.close()
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 隐式等待页面加载
def getPage2():
    url = "http://www.pythonscraping.com/pages/javascript/ajaxDemo.html"
    driver = webdriver.PhantomJS(executable_path="phantomjs")
    driver.get(url)
    # 等待页面加载完毕,获取明显元素作为标志
    try:
        element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.ID, "loadedButton"))
        )
    finally:
        # 获取内容
        content = driver.find_element_by_id("content")
        print(content.text)
        driver.close()
getPage2()

点击百度自动提交

# -*- coding:utf-8 -*-
from selenium import webdriver
import time
def clickBaidu():
    # 为了看到效果,使用chrome浏览器
    driver = webdriver.Chrome()
    time.sleep(5)
    baidu = "http:www.baidu.com"
    driver.get(baidu)
    time.sleep(5)
    driver.find_element_by_id("kw").send_keys("百度")
    time.sleep(5)
    driver.find_element_by_id("su").click()
    time.sleep(5)
    # 截屏
    driver.get_screenshot_as_file("baidu_shot.png")
    time.sleep(5)
    driver.close()
clickBaidu()
# 说明,time.sleep() 是为了看到浏览器整个自动过程,实际使用可以去掉

鼠标动作

element.click()
element.click_and_hold()
element.release()
element.double_click()

相关文章
|
1月前
|
数据采集 存储 XML
Python爬虫:深入探索1688关键词接口获取之道
在数字化经济中,数据尤其在电商领域的价值日益凸显。1688作为中国领先的B2B平台,其关键词接口对商家至关重要。本文介绍如何通过Python爬虫技术,合法合规地获取1688关键词接口,助力商家洞察市场趋势,优化营销策略。
|
2月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
57 4
|
20天前
|
Python
Python Internet 模块
Python Internet 模块。
118 74
|
2月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
118 63
|
2月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
2月前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
9天前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
10天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
19天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
24天前
|
数据采集 存储 API
利用Python爬虫获取1688关键词接口全攻略
本文介绍如何使用Python爬虫技术合法合规地获取1688关键词接口数据,包括环境准备、注册1688开发者账号、获取Access Token、构建请求URL、发送API请求、解析HTML及数据处理存储等步骤,强调遵守法律法规和合理使用爬虫技术的重要性。

热门文章

最新文章