Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python3 Selenium+Chr

Python3 Selenium+Chr

作者头像
py3study
发布于 2020-01-10 07:49:52
发布于 2020-01-10 07:49:52
48600
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

以前抓取动态网页是用PhantomJS + Selenium + ChromeDriver,但是新版的Selenium不支持PhantomJS了,程序跑的时候总会跳出一些warnings.

现在的操作是放弃PhantomJS,直接用headless ChromeDriver。可直接在Google主页下载个ChromeDriver,都是支持headless的。

下面的程序就是启动driver,抓取数据,关闭driver的例子。记得要关掉driver,不然会占内存。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- coding: UTF-8 -*-
'''
@version: Python 3.6
@introduction:
@author: 
@date: 2018-3
'''

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 启动driver
def init_web_driver():
    global driver
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    driver_path = 'E:\chromedriver.exe'    #这里放的就是下载的driver本地路径
    driver = webdriver.Chrome(chrome_options=chrome_options, executable_path = driver_path)

# 关掉driver
def close_web_driver():
    driver.quit()

def get_data():
    driver.get('https://www.baidu.com')
  driver.implicitly_wait(10)  # wait up to 10 seconds for the elements to become available
    # ======  网页中静态部分抓取,采用BeautifulSoup去解析   
    html = driver.page_source    # 获取网页html
    html_soup = BeautifulSoup(html.text,"lxml")
    time.sleep(0.1)
    coin_list = html_soup .find(name='table', attrs={"class": "table maintable"})
    # 页面元素的提取请查看 BeautifulSoup的用法
    # ====== 网页中动态部分抓取,采用driver自带的方法
    # 下面展示的从调用百度搜索,在搜索框中输入"headless chrome",然后获取结果。具体自行百度driver的用法
    text = driver.find_element_by_css_selector('#kw')
    search = driver.find_element_by_css_selector('#su')
    text.send_keys('headless chrome')
    # search
    search.click()
    driver.get_screenshot_as_file('search-result.png')
    results = driver.find_elements_by_xpath('//div[@class="result c-container "]')
    for result in results:
        res = result.find_element_by_css_selector('a')
        title = res.text
        link = res.get_attribute('href')
        print ('Title: %s \nLink: %s\n' % (title, link) )


if __name__ == '__main__':
    init_web_driver()
    get_data()
    close_web_driver()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《手把手带你学爬虫──初级篇》第5课 Selenium WebDriver的用法
Selenium 是一个自动化测试工具,WebDriver是它提供的一套操作浏览器的API,由于WebDriver针对多种编程语言都实现了这些API,因此它可以支持多种编程语言。
GitOPEN
2019/01/29
2.7K0
《手把手带你学爬虫──初级篇》第5课  Selenium WebDriver的用法
Python教程:selenium模块用法教程
selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题
Python学习者
2023/02/07
1.8K0
Python 爬虫之Selenium终极绝招
这里简单解释一下什么是Selenium,它其实是一个网站前端压力测试框架,更通俗的说,它能直接操作浏览器,试想一下,网页是在浏览器里面加载的,如果我们能用代码操控浏览器,那我们想要爬取什么数据不能通过浏览器获取?无所不爬!
arcticfox
2019/06/26
1.3K0
Python 爬虫之Selenium终极绝招
Python3爬虫模拟登录爬取百度图片
pycharm,python3.7,selenium库,request库,os文件库,re模块的正则表达式运用,自行下载chromedriver自测软件
HcodeBlogger
2020/07/14
6280
Selenium 简单介绍、安装、启动
Selenium简单介绍 https://selenium-python.readthedocs.io/ https://python-selenium-zh.readthedocs.io/zh_CN/latest/ 什么是selenium 通过浏览器驱动来自动化操纵浏览器的工具 selenium -> 传输指令 -> webdriver -> 转换指令 -> 浏览器 webdriver的出现是为了兼容各语言各版本, 使java或者python都可以通过同一个webdriver达到操纵浏览器的目的. se
友儿
2022/10/05
3600
Python+Selenium详解(超全)
selenium 是一个 web 的自动化测试工具,不少学习功能自动化的同学开始首选 selenium ,因为它相比 QTP 有诸多有点:
用户8449980
2021/07/11
1.3K0
08 Python爬虫之selenium
当获取一个网站的图片数据时,只能爬取到图片的名称,并不能获得链接,而且也不能获得xpath表达式。这是应用了图片懒加载技术。
py3study
2020/01/15
1K0
Python 爬虫(四):Selenium 框架
Selenium 是一个用于测试 Web 应用程序的框架,该框架测试直接在浏览器中运行,就像真实用户操作一样。它支持多种平台:Windows、Linux、Mac,支持多种语言:Python、Perl、PHP、C# 等,支持多种浏览器:Chrome、IE、Firefox、Safari 等。
Python小二
2020/08/18
1.1K0
Python 爬虫(四):Selenium 框架
Python3多进程+协程异步爬取小说
之前写了一篇关于用多线程爬小说的博客,但是发现爬取16M的小说需要十几分钟,所以今天更新了一篇用多进程外加使用单线程异步的协程同样爬取之前用多线程爬取的同一篇小说,并进行两者效率的对比
HcodeBlogger
2020/07/14
9300
Python3多进程+协程异步爬取小说
Python动态网页爬虫—爬取京东商城
动态网页则需要依靠客户端的脚本和服务端的脚本两种方式进行渲染才形成最终的显示文档。
AnieaLanie
2021/12/11
1.6K0
Selenium | 笔记
这里我们选用第三种,相对来说适应性比较好,也方便查看进展,如果想隐藏页面,只需要加入—headlss选项即可。
yiyun
2022/04/01
2.9K0
Selenium | 笔记
Selenium与PhantomJS
Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。
小小杰啊
2022/12/21
1.1K0
python+selenium实现动态爬
AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML。过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。
py3study
2020/01/20
2.2K0
如何优化 Selenium 和 BeautifulSoup 的集成以提高数据抓取的效率?
摘要 在互联网时代,数据的价值日益凸显。对于电商网站如京东,其商品信息、用户评价等数据对于市场分析、产品定位等具有重要意义。然而,由于这些网站通常使用 JavaScript 动态生成内容,传统的爬虫技术难以直接获取到完整数据。本文将以爬取京东商品信息为例,探讨如何优化 Selenium 和 BeautifulSoup 的集成,以提高数据抓取的效率。
小白学大数据
2024/07/24
1580
Python爬虫教程:Selenium可视化爬虫的快速入门
Selenium最初是为自动化Web应用程序的测试而设计的。它支持多种编程语言,并能与主流的浏览器进行交互。使用Selenium,我们可以模拟用户在浏览器中的各种行为,如点击、滚动、输入等,这使得它成为开发可视化爬虫的理想选择。
小白学大数据
2024/10/18
2230
使用Selenium爬取淘宝商品
在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取。比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可能会包含加密密钥等,所以如果想自己构造Ajax参数,还是比较困难的。对于这种页面,最方便快捷的抓取方法就是通过Selenium。本节中,我们就用Selenium来模拟浏览器操作,抓取淘宝的商品信息,并将结果保存到MongoDB。 1. 本节目标 本节中,我们要利用Selenium抓取淘宝商品并用pyquer
崔庆才
2018/06/25
3.7K0
Python爬虫利器Selenium从入门到进阶
selenium是最广泛使用的开源Web UI自动化测试套件之一,它所支持的语言包括C++、Java、Perl、PHP、Python和Ruby,在数据抓取方面也是一把利器,能够解决大部分网页的反爬措施,当然它也并非是万能的,一个比较明显的一点就在于是它速度比较慢,如果每天数据采集的量并不是很高,倒是可以使用这个框架。
用户6888863
2021/12/10
1.7K0
Python爬虫利器Selenium从入门到进阶
Python爬虫教程:Selenium可视化爬虫的快速入门
网络爬虫作为获取数据的一种手段,其重要性日益凸显。Python语言以其简洁明了的语法和强大的库支持,成为编写爬虫的首选语言之一。Selenium是一个用于Web应用程序测试的工具,它能够模拟用户在浏览器中的操作,非常适合用来开发可视化爬虫。本文将带你快速入门Python Selenium可视化爬虫的开发。
小白学大数据
2024/10/17
2970
Python3多线程小说爬虫可提供查询功能
pycharm+chromedriver+bs4+re+threading+queue模拟登录小说多线程爬虫
HcodeBlogger
2020/07/14
4550
Python3多线程小说爬虫可提供查询功能
如何使用Python的Selenium库进行网页抓取和JSON解析
随着互联网的快速发展,网页抓取和数据解析在许多行业中变得越来越重要。无论是电子商务、金融、社交媒体还是市场调研,都需要从网页中获取数据并进行分析。Python的Selenium库作为一种自动化测试工具,已经成为许多开发者的首选,因为它提供了强大的功能和灵活性。本文将介绍如何使用Python的Selenium库进行网页抓取,并结合高效JSON解析的实际案例,帮助读者解决相关问题。
小白学大数据
2023/08/30
8820
相关推荐
《手把手带你学爬虫──初级篇》第5课 Selenium WebDriver的用法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验