js 抓取网页内容(《Python网络数据采集》第10章介绍了如何抓取JavaScript生成的页面的基本原理 )
优采云 发布时间: 2021-11-10 09:19js 抓取网页内容(《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()