Python爬虫利器---PhamtomJS

Python爬虫利器—PhamtomJS

阅读本文需要2.66分钟

python爬虫玩多了之后,大家应该会发现有个共性:就是只能爬取单纯的html代码。那么如果页面是JS渲染的该怎么办?

如果我们单纯的去分析每一个后台的请求,手动去摸索JS渲染的一些结果,那么简直是醉了。所以,我们一些好用的工具来帮助我们像浏览器一样渲染JS处理的页面。

PhamtomJS http://phantomjs.org

引用官网的一句简介:

###Full web stack No browser required

PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.

PhamtomJS是一个无界面的,可脚本编程的WebKit浏览器引擎。它原生支持多种web标准:DOM操作、CSS选择器、JSON、Canvas以及SVG。

具体的安装方法我们就不讲了。这里给个链接 http://www.tuicool.com/articles/MjUfayI

那么接下来我们通过抓取 Github 某个仓库渲染之后的主页来进行PhamtomJS的讲解:

效果:

1
2
3
4
5
6
7
8
from selenium import webdriver
def capture(url, save_fn="capture.png"):
print url
browser = webdriver.PhantomJS() # Get local session of firefox
browser.set_window_size(1200, 900)
browser.get(url)
browser.save_screenshot(save_fn)
browser.close()

print driver.find_element_by_tag_name(“div”).text
print driver.find_element_by_csss_selector(“#content”).text
print driver.find_element_by_id(“content”).text

1
2
3
4
find_element_by_tag_name("div")
find_element_by_csss_selector("#content")
find_element_by_id("content")
等等的