htmlunit抓取动态网页( 环境搭建准备工具:pyton3.5安装Seleniuminstallpip3seleniumselenium)
优采云 发布时间: 2021-09-22 12:12htmlunit抓取动态网页(
环境搭建准备工具:pyton3.5安装Seleniuminstallpip3seleniumselenium)
Python+selenium+phantom JS抓取网页并动态加载内容
环境建设
准备工具:pyton3.5,硒,幻影
我的电脑已经安装好了python3.5
安装硒
pip3安装selenium
安装phantomjs
根据系统环境下载phantomjs。下载后,将phantomjs.exe解压缩到Python的脚本文件夹中
使用selenium+phantom JS实现简单爬虫
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('http://www.baidu.com') #加载网页
data = driver.page_source #获取网页文本
driver.save_screenshot('1.png') #截图保存
print(data)
driver.quit()
硒+JS的几种使用方法
在请求头中设置用户代理
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
dcap = dict(DesiredCapabilities.PHANTOMJS) #设置useragent
dcap['phantomjs.page.settings.userAgent'] = ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0 ') #根据需要设置具体的浏览器信息
driver = webdriver.PhantomJS(desired_capabilities=dcap) #封装浏览器信息
driver.get('http://www.baidu.com') #加载网页
data = driver.page_source #获取网页文本
driver.save_screenshot('1.png') #截图保存
print(data)
driver.quit()
请求超时设置
webdriver类中有三种与时间相关的方法:
1.pageLoadTimeout设置加载整页的超时时间。完全加载意味着完全呈现完成,同时执行同步和异步脚本
2.setScriptTimeout设置异步脚本的超时
3.implicitlyWait确定对象的智能等待时间
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.set_page_load_timeout(5) #设置超时时间
driver.get('http://www.baidu.com')
print(driver.title)
driver.quit()
设置浏览器窗口大小
您调用启动的浏览器不是全屏的,这有时会影响我们的一些操作,因此我们可以设置全屏
driver.maximize u Window()#设置全屏
driver.set uu窗口大小('480','800')#将浏览器宽度设置为480,高度设置为800
元素定位
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.set_page_load_timeout(5)
driver.get('http://www.baidu.com')
try:
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw') # 通过ID定位
driver.find_element_by_class_name('s_ipt') # 通过class属性定位
driver.find_element_by_name('wd') # 通过标签name属性定位
driver.find_element_by_tag_name('input') # 通过标签属性定位
driver.find_element_by_css_selector('#kw') # 通过css方式定位
driver.find_element_by_xpath("//input[@id='kw']") # 通过xpath方式定位
driver.find_element_by_link_text("贴吧") # 通过xpath方式定位
print(driver.find_element_by_id('kw').tag_name ) # 获取标签的类型
except Exception as e:
print(e)
driver.quit()
向前或向后操作浏览器
from selenium import webdriver
driver = webdriver.PhantomJS()
try:
driver.get('http://www.baidu.com') #访问百度首页
driver.save_screenshot('1.png')
driver.get('http://www.sina.com.cn') #访问新浪首页
driver.save_screenshot('2.png')
driver.back() #回退到百度首页
driver.save_screenshot('3.png')
driver.forward() #前进到新浪首页
driver.save_screenshot('4.png')
except Exception as e:
print(e)
driver.quit()
以下是文章关于Python+selenium+phantom JS爬行网页以动态加载内容的介绍。有关Python phantom JS爬行内容的更多信息,请搜索我们之前的文章或继续浏览下面的相关文章页面。我希望你将来会支持我们
时间:2020年2月24日
Python爬虫selenium和phantom JS使用方法解析
1.selenum:构建第三方库。它可以使浏览器完成自动操作2.environment2.1安装:PIP安装selenium2.2获取浏览器驱动程序的下载地址:浏览器版本和驱动程序版本之间的对应表:chromedriver版本支持的chrome版本v2.46 v71-73v2.45
Python爬虫程序使用selenium&;加;Phantom JS抓取Ajax和动态HTML内容
1.introduction在python web爬虫内容提取器中,我们详细解释了核心组件:可插入内容提取器类gsextractor。本文记录了在确定GSR萃取器技术路线时所做的程序设计实验。这是第二部分,实验的第一部分使用XSLT一次性提取静态web内容并将其转换为XML格式,留下了一个问题:如何提取由JavaScript管理的动态内容?所以本文将回答这个问题2.提取动态内容的技术组件。在上一篇文章中,python使用XSLT提取网页数据。要提取的内容直接从网页的源代码中获取。但是,有些Ajax
解释硒和;加;幻影&;加;Python简单地实现了crawler的功能
Selenium一.introduction Selenium是一种用于测试web应用程序自动化程序的工具。测试直接在浏览器中运行,就像真实用户一样。Selenium 2支持驱动真实浏览器(firfoxdriver、iternetexplorerdriver、opera驱动程序、chromedriver),Selenium 2支持驱动非接口浏览器(htmlunit、phantom JS)二.安装windows的第一种方法是下载源代码、安装和下载地址(
Python&;plus;selenium&;plus;phantomjs实现了网页模拟登录和屏幕截图(Windows环境&rPar的功能
Python是一种跨平台的计算机编程语言,可以在windows.mac和各种Linux/Unix系统上运行。它是一种面向对象的动态类型语言,最初设计用于编写自动脚本(shell),随着版本的不断更新和新语言功能的增加,越来越多的被用于独立开发。对于大型项目的开发,请访问Python官网下载并安装。在安装过程中,请检查PIP(Python软件包管理工具)安装Python后,打开命令行工具CMD并输入
Python实现了基于phantomjs的图片导入
基于phantomjs的自动化将出现1.flash2.有些基于视图的按钮无法单击,有些按钮是基于flash的(尤其是上载按钮)。Browser.find_element_by_xpath(“./*[@name='swfuload_0'])。Click()#单击上载按钮睡眠(2)AutoIT.Control_set_text(“,”[类:编辑;实例:1]“,Tupian)#上传
Python使用phantomjs屏幕截图网页的方法
示例如下:#!/usr/bin/Python#-*-编码:utf8-*-来自selenium导入webdriver导入OS Driver1=webdriver.Phantom JS(可执行文件路径='/usr/local/bin/Phantom JS')driver1.get(“”)数据=driver1.titledriver1.save_屏幕截图('c
Phantom JS获取呈现的JS网页(Python代码)
最近我需要抓取一个网站,但是页面是在JS渲染后生成的,普通的抓取框架不确定,所以我想用phantomjs来构建一个代理,Python调用phantomjs,似乎没有现成的第三方库(如果有,请通知编辑),我走来走去,发现只有pyspider提供现成的解决方案。经过一次简单的尝试,我觉得pyspider更像是新手的爬行工具,就像一个老*敏*感*词*,有时一丝不苟,有时喋喋不休。轻量级的小玩意应该更受欢迎。我也有一点自私。我可以将它们与我最喜欢的漂亮的东西一起使用汤而不是学习pyquery(pyspide
Python爬虫图像延迟加载技术selenium和phantom JS解析
一.什么是图片的延迟加载?-案例分析:抓取网站管理员材料#!/usr/bin/env Python#-*-编码:UTF-8-*-如果uName==“main”:url=''headers={'用户年龄,则从lxml导入etree导入请求
JS镜像延迟加载技术的实现过程分析
Lazy load技术Lazy load是前端优化的一种有效方式,它极大地改善了用户体验。图片一直是页面加载中的一个很大的流氓。现在图片的大小通常是几兆字节,远远大于代码的大小。原则:页面加载后,只有显示文档的可见区域,其他区域不显示。当用户滚动页面时,判断该区域的位置,生成img标记,并让用户将所使用的相关技术添加到可见区域:向img添加属性(例如数据SRC),将图片的地址分配给他,以便生成img标记,然后将数据SRC的值分配给img SRC(通过dataset.SRC或getattrib)
JS前端实现了两种延迟加载图片的方式(lazload&rPar
在实际的项目开发中,我们经常会遇到这样的场景:一个页面上有很多图片,第一个屏幕上大约有一两张图片,所以我们必须一次加载所有图片吗?显然,这很愚蠢,这不仅影响页面渲染速度,而且浪费带宽。这就是我们通常所说的第一个屏幕加载,这是技术现实中使用的技术。想法是惰性地加载图像——将其加载到可见区域。想法:用数据XX替换页面中的所有img属性SRC属性。当页面滚动直到图像出现在可见区域时,使用js获取图像的数据XX值并分配它向Src.About各种宽度和高度:页面可见区域的宽度:document.body.clien
用JavaScript实现图片延迟加载插件的方法
序言在网络上的主要论坛中,特别是网站某些图片类型中,加载图片时采用了一种称为延迟加载的方法。具体来说,当请求页面时,只加载可视区域中的图片,而不加载其他部分中的图片。这些图片只有在出现时才会动态加载r在可视区域,为了节省网络带宽和提高效率,初始加载的速度和具体实现技术并不复杂,下面分别介绍。延迟加载web图像是读取img元素,获取数据SRC(或其他属性名称)的值属性,并给出img SRC,从而实现图像的动态加载机制。这里需要注意的是,img处于初始阶段