ajax抓取网页内容(安装成功获取JS返回值库元素即为安装的成功示例一 )
优采云 发布时间: 2021-11-17 23:00ajax抓取网页内容(安装成功获取JS返回值库元素即为安装的成功示例一
)
前言
现在很多网站大量使用JavaScript,或者使用Ajax技术。这样,网页加载完成后,虽然url没有变化,但是网页的DOM元素的内容却可以动态变化。如果使用python自带的requests库或者urllib库来处理这类网页,那么获取到的网页内容与浏览器显示的内容不一致。
解决方案
使用 Selenium+PhantomJS。这两者一起可以运行一个非常强大的爬虫,它可以处理 cookie、JavaScript、标头和任何你想做的事情。
安装第三方库
Selenium是一款功能强大的网络数据采集工具,最初是为网站自动化测试而开发的,并有相应的Python库;
Selenium 安装命令:
pip install selenium
安装 PhantomJS
PhantomJS是一个基于webkit核心的无头浏览器,即没有UI界面,也就是浏览器,但是点击、翻页等与人相关的操作需要设计和实现。通过编写js程序,可以直接与webkit内核交互,在此基础上还可以结合java语言等,通过java调用js等相关操作。需要到官网下载对应平台的压缩文件;
PhantomJS(phantomjs-2.1.1-windows)下载地址:根据不同系统选择对应版本
windows系统下载PhantomJs,将解压后的可执行文件放在设置了环境变量的地方。如果不设置,后面的代码会设置,所以直接放这里方便;
然后在检测下,在cmd窗口输入phantomjs:
如果出现这样的画面,则表示成功;
Mac系统,下载保存到某个路径后,可以直接保存在环境变量路径中,也可以在环境变量路径中创建phantomjs的软链接
ln -s /usr/local/opt/my/phantomjs-2.1.1-macosx/bin/phantomjs /usr/local/bin
测试代码:
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('http://www.baidu.com/')
print (driver.page_source)
页面元素安装成功就是安装成功
示例 1:
Selenium+PhantomJS 示例代码:
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('http://www.cnblogs.com/feng0815/p/8735491.html')
#获取网页源码
data = driver.page_source
print(data)
#获取元素的html源码
tableData = driver.find_elements_by_tag_name('tableData').get_attribute('innerHTML')
#获取元素的id值
tableI = driver.find_elements_by_tag_name('tableData').get_attribute('id')
#获取元素的文本内容
tableI = driver.find_elements_by_tag_name('tableData').text
driver.quit()
可以输出网页的源码,说明安装成功
获取JS返回值