js 抓取网页内容(《Python网络数据采集》第10章介绍了如何抓取JavaScript生成的页面的基本原理 )

优采云 发布时间: 2021-11-10 09:19

  js 抓取网页内容(《Python网络数据采集》第10章介绍了如何抓取JavaScript生成的页面的基本原理

)

  《Python网络数据采集》第10章介绍了如何抓取JavaScript生成的页面的基本原理,也介绍了Xpath的语法,Xpath的一些语法对于定位还是很有用的。

  第10章介绍:

  1. 首先介绍一下主要用于网页的javascript库,jquery\Google Analytics\Google Map。爬取JavaScript生成的页面,必须了解javascript库的基本操作。

  2.接下来就是如何使用selenium()通过selenium模拟浏览器操作,然后读取页面内容。

  Selenium 可以调用不同浏览器的核心操作。文章中的介绍主要使用了phantomjs()工具。

  安装操作:

  硒安装:

  pip install selenium

  只需下载并解压phantomjs,下载地址:

  建议添加到PATH路径

  sudo ln -sf /pythontest/tool/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs

  XPath 语法介绍:

  Selenium 还支持 XPath 定位方法(BeautifulSoup 不支持)

  XPath 的一些语法比较有用,也列出来了:

  : 根节点和非根节点

  --/div 根节点上的div

  --//div所有div节点

  :定位属性

  --//@Href 所有 href 属性

  --//A[@href='://'] 所有href都指向天山的属性

  : 按位置选择

  --//A[3] 第三个节点

  --//Table[last()] 最后一个表

  --//A[position() <3] 前3张表

  : 通配符 (*)

  --//Table/tr/* 所有表的所有内容

  --//div[@*] div标签的所有属性

  示例代码:

  1-seleniumBasic.py<br />

2-waitForLoad.py<br />

3-javascriptRedirect.py

  例子比较简单,自己看吧。

  但是,有一点需要修改。我修改了示例1的代码,制作了不同的浏览器和具体的执行路径:

  -------<br />

#1-seleniumBasic.py<br />

from selenium import webdriver<br />

import time<br />

driver = webdriver.Firefox(executable_path='')<br />

#driver = webdriver.PhantomJS()  #这个也可以<br />

#driver = webdriver.PhantomJS(executable_path='/usr/local/bin/phantomjs')#这个也可以<br />

driver.get("http://pythonscraping.com/pages/javascript/ajaxDemo.html")<br />

time.sleep(3)<br />

print(driver.find_element_by_id("content").text)<br />

driver.close()

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线