python下初步使用selenium/phantomJS问题总结

盘点selenium phantomJS使用的坑 说到python爬虫,刚开始主要用urllib库,虽然接口比较繁琐,但也能实现基本功能。等见识了requests库的威力后,便放弃urllib库,并且也不打算回去了。但对一些动态加载的网站,经常要先分析请求,再用requests模拟,比较麻烦。直到遇到了selenium库,才发现爬动态网页也可以这么简单,果断入坑! selenium是python的一个第三方自动化测试库,虽然是测试库,却也非常适合用来写爬虫,而phantomJS是其子包webdriver下面的一个浏览器。phantomJS本身是一个无头浏 阅读详情


想做个网页爬虫工具,由于网页的JS脚本解析比较麻烦,试用了selenium+phantomJS的方式,方便很多,总结下使用过程中遇到的几个问题;
selenium可以调用浏览器工具进行网页的访问,而phantomJS可以看做一个没有界面的、后台运行的浏览器,而且可以解析JS脚本;

1、基本使用方式
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path='...')
driver.set_page_load_timeout(10)
driver.get(url)

#获取网页元素的方式
driver.find_element_by_id('...')
driver.find_element_by_csss_selector('...')
driver.find_element_by_tag_name('...')
driver.find_elements_by_xpath('...')

driver.quit()


2、executable_patch设置的问题
--需要设置phantomJS执行文件的问题,路径中需要使用/,而使用\方式时出错;


3、使用driver.get(url)概率一直不返回的问题
--应该是默认加载网页超时设置为无限值导致;
--driver.set_page_load_timeout(10),即将加载网页超时设置为10s;


4、不能使用print打印中文的问题
--由于使用Notepad编写脚本时,默认使用的是ANSI格式编码;
--将编码方式修改为UTF-8编码方式解决;


5、关于对齐问题
由于python的代码块是靠空格对齐来划分的,如果不对齐将出现结果问题;
在使用notepad++编辑,可以设置:
--菜单栏->视图 -> 显示符号 -> 显示空格与制表符,这样可以看到空格符的显示信息;
--菜单栏->设置- > 首选项- > 语言- > Replace by space,并且可以设置Tab size的大小;


6、网页table的访问

--访问网页的table中某项时,网上很多都使用by xpath的方式,觉得比较麻烦;

--后来发现只要采用by id的方式就能够取到整个table的信息,然后再采用re模块的方法进行处理即可。

使用Selenium、PhantomJS爬取动态渲染页面 本文介绍了如何使用Selenium和PhantomJS来爬取动态渲染页面的方法,这种方法可以模拟人类的浏览器操作,获取完整的页面源代码。当然,这种方法会比传统的静态页面爬取方法耗费更多的系统资源,因此在使用时应慎重考虑。 阅读详情

相关推荐

python +selenium+phantomjs 登录爬取新浪微博动态js页面

登录新浪微博最近新浪微博好烦,都取消不了验证码这个难搞得东西,而且跳来跳去,一改版以前的代码就都不能用了。目前整理的资料有三种方法: 1. 设Cookie:简单粗暴,免去了模拟登录的好多麻烦,只是要定期更新 2. 模拟登录:验证码是个大麻烦,有把验证码图片截下来,本地识别控制台输入验证 3. 扫码登录 :用app的扫码登录 其实除了设cookie ,在有验证码下,后两种方法差不多,都要人工干预

Crystal_Zero的博客 1万+

爬虫之 ---- 无界面浏览器

一 . 大招从基础开始    1.  PhantomJS:无界面的浏览器      Selenium: 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 PhantomJS 的工具代替真...

fenglei0415的博客 9357

Python 在 phantomjs + selenium 添加代理

概述:网上有很多文章讲phantomjs+selenium如何添加代理IP的文章,但是亲自试了多个,均不可用。因为我用的是经过认证的代理,网上好多只提供了没有认证的代理IP的办法。而且还有说需要修改phantomjs或selenium源码的,我认为这种办法的可移植性太差。弄了两天多,还是没有办法,后来把问题发到了论坛里,有人给了下边的链接,在linux下只打印出来html空架子,但是看楼主是解决了...

aysa_bear的博客 2930

python使用selenium模块的webdriver和PhantomJs报错解决

在使用selenium模块中的自动化测试模块:webdriver和PhantomJS 的时候,出现错误:selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH. 和selenium.common.exceptions.WebDriverException:...

第一行代码 1482

Linux下Python3环境安装selenium跟phantomjs

场景 因为项目中在爬今日头条的时候,基于破解今日头条的验签跟cp等参数难度大,不得不转向selenium库 Linux下安装Selenium 这里主要是记录下在Linux下Python3环境中的selenium与phantomjs的安装,上一篇已经说道在Linux下进行Python3与scrapy框架的安装 (一)依赖包安装 sudo yum install build-e...

徐代龙的技术专栏 2982

使用Selenium和PhantomJS进行Python论坛爬虫实战

Python爬虫是一种利用Python编程语言开发的网络爬取工具,它通过模拟人类上网行为来自动化地收集网络数据。Python由于其简洁的语法和强大的库支持,在爬虫领域尤为流行。从简单的数据抓取到复杂的数据挖掘,Python爬虫都能胜任。在本章中,我们将从爬虫的基本原理和组成入手,逐步深入了解网络爬虫的运行机制和核心概念。我们还会探索一些常见的Python爬虫框架和工具,例如Requests库进行HTTP请求,BeautifulSoup库解析HTML文档,以及Selenium进行模拟浏览器操作。

weixin_42602368的博客 1755

Selenium support for PhantomJS has been deprecated解决方案

Selenium+PhantomJS使用时报错原因及解决方案 错误信息: UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead 翻译过来是: 用户警告:对Phantomjs的Selenium支持已被弃用,请改...

qq_43055565的博客 5296

Axure RP 10表单数据提交制作

本文介绍了如何使用Axure RP 10实现表单数据提交。

Peppaaa的博客 990

python下的selenium和PhantomJS

一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览器PhantomJS来抓取javascript渲染的页面, 但是新版本的Selenium不再支持PhantomJS了,请使用Chrome或Firefox的无头版本来替代。 如下图: 这里有2中...

dz45693的专栏 2193

差分运放电路输出电压偏置设计解析

差分运算放大电路是信号处理中的基础模块,通过差分对管结构实现共模抑制与差模放大。其核心原理基于运放的虚短虚断特性,当电阻网络满足对称条件时,输出电压与输入差分成正比。在工业测量系统中,由于ADC通常仅支持正电压输入,需要通过偏置电路将双极性信号平移至正电压范围。典型设计采用精密基准电压源和匹配电阻网络,既保持信号完整性又满足系统接口要求。本文以-100V高压测量为例,详细解析了分压网络设计、参考电压选取以及电阻匹配等关键技术要点,为传感器接口电路设计提供实践参考。

weixin_35750747的博客 470

ICG setup timing violation介绍?

门控时钟(clock gating)在RTL级电路设计过程中进行低功耗优化常用方法,能够有效降低动态功耗(翻转功耗)。Clock gating cell 可以由与门,与非门,或门或者或非门构成,但很容易产生Glitch。在实际使用中,一般用ICG(集成门控时钟单元)来完成clock gating。 下图展示了glitch的产生原因 在CTS时钟树综合的时候,ICG不会被看作sink,通常放置在source点附近,因此就会出现如上图这种结果。上图可以看出,在分析DFF到ICG的setup timing

m0_61003348的博客 9807

python初学selenium+phantomjs遇到的问题

自动化测试神器 selenium+phantomjs Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建衰退测试检

bzd_111的专栏 1万+

高能物理相关软件

国内高能物理实验背景     研究物质最深层次结构及相互作用的前沿基础科学。 现代高能物理实验的要素    实例源 、 探测器、   电子学、  触发 DAQ、  原始数据、 刻度、重建 、物理分析、  成果  。 离线软件的地位和作用。    是硬件设备和物理学家的桥梁,是从数据到物理成果转化中的关键和重要的环节。 高能物理实验及其特点 独一无二性,实验规模越来越大,努力省钱(使用

Alan Zhuang的博客 3298

Python3安装PhantomJS和Selenium

之前抓取了某个网站,写了个总结。点击打开链接 想着隔一段时间搞一下,结果这几日发现抓取报错。查看一下提示封我IP了。 但是我用浏览器打开是没有问题的。 估计是我写的爬虫隐藏能力还不够强,被直接认定为爬虫了。只是人家唬我而已。其实后来发现是cookie的问题。不过这个文章就不说这个了。 一开始觉得可能是gzip压缩可能被认出,然后我就加了支持gzip了。发下你还不行。只好试试js的运行了。

肥宝的实验室 9947

Qt快速读取Excel文件

网上很多读取方式都是如下形式,太慢了,打开文件+读取文件要6s以上,实在是受不了! QAxObject excel("Excel.Application"); excel.setProperty("Visible", false); QAxObject *work_books = excel.querySubObject("WorkBooks"); work_boo...

c+c++的博客 2万+

STM32 WinUSB免驱实现:从DFU模式到高速通信的实战指南

本文详细介绍了STM32 WinUSB免驱实现方案,从DFU模式到高速通信的完整实战指南。通过修改设备描述符、添加BOS描述符和实现WCID描述符集,开发者可以轻松实现即插即用的USB设备,无需额外安装驱动。文章还提供了性能优化技巧和实际应用案例,帮助开发者快速部署高效稳定的USB通信方案。

weixin_29171087的博客 422

selenium和phantomJS

selenium和phantomJS 目录清单 [x] . selenium和phantomjs概述 [x] . selenium常用API [x] . 案例操作:模拟登陆csdn 课程内容 1. selenium和phantomJS是什么东西 selenium是一套web网站自动化测试工具,主要通过命令行的操作完成常规可视化界面下的用户各种操作行为,因为其简单易学成本低...

一吱大懒虫的博客 5438

SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】

SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】

Mr_XiMu的博客 3742

python selenium、phantomjs使用

from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup as bs import time import logging.handlers import traceback # 获得logging对象 mylog = logging....

qq_32446743的博客 239

E2B Agent Runtime Sandbox 沙箱技术架构研究

本实现指南基于E2B的技术架构,提供了完整的基于Firecracker和Docker的Agent Runtime Sandbox后端服务实现方案。架构设计:参考E2B的分层架构,实现API层、管理层和虚拟化层Firecracker集成:深度集成Firecracker提供硬件级安全隔离完整功能:支持文件读写、shell执行、浏览器访问等核心功能生产就绪:提供Docker部署、监控、测试和安全配置可扩展性:设计支持水平扩展和高并发场景。

AI天才研究院 746

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python使用selenium_Python使用Selenium-PhantomJS

转载一篇文章,为Selenium/PhantomJS做准备PhantomJS 无浏览器操作Selenium启动浏览器操作phantomjs使用from selenium import webdriverdriver = webdriver.PhantomJS()driver.get("http://www.baidu.com")data = driver.titleprint dataseneli...

weixin_39720003的博客 129

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python基于selenium+PhantomJS实现搜索交互案例

做python爬虫测试。找了一个比较好测试的网站,基于selenium+PhantomJS填写表单在提交获取结果的功能。 至于开发的环境: 环境是windows,python版本为3.5.2。selenium+PhantomJS搭建步骤参考:http://blog.csdn.net/u014175572/article/details/54427525 1、分析网站页面

简单就是美 4278

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python爬虫利器Selenium+PhantomJS系列入门

简介一直以来我们在使用Python的urllib2、httplib等通信框架来抓取网页,但是涉及到JavaScript渲染的页面却不能抓取,所以采用Web自动化测试工具Selenium,无界面浏览器PhantomJS来抓取JavaScript渲染的页面,带我们熟悉使用后,爬虫技能将大大提升。 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在

u010809020的博客 6242

selenium在执行phantomjs的API并获取执行结果

selenium在执行phantomjs的API并获取执行结果

Bendawang's Blog 7240
上一篇: python基础知识整理
下一篇: LTE的小区搜索和PBCH接收
究理观心
博客等级 码龄10年 184粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值