ajax抓取网页内容(安装成功获取JS返回值库元素即为安装的成功示例一)

优采云 发布时间: 2022-03-14 02:19

  ajax抓取网页内容(安装成功获取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

<p>driver = webdriver.PhantomJS()

driver.get('http://www.baidu.com/')

print (driver.page_source)</p>

  如果能成功获取到页面元素,则安装成功。

  示例一:

  Selenium+PhantomJS 示例代码:

  from selenium import webdriver

<p>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()</p>

  可以输出网页的源代码,说明安装成功

  获取JS返回值

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线