怎么爬取网页的动态内容,很多都是js动态生

JavaScript011

怎么爬取网页的动态内容,很多都是js动态生,第1张

抓取动态页面有两种常用的方法,一是通过JavaScript逆向工程获取动态数据接口(真实的访问路径),另一种是利用selenium库模拟真实浏览器,获取JavaScript渲染后的内容。但selenium库用起来比较繁琐,抓取速度相对较慢,所以第一种方法日常使用较多。

这个方法只是获取页面源码;你的要求是获取DOM结构;

有一个方式,使用lxml库,先使用selenium获取整个html的DOM,再把Dom转存到lxml对象,这样的方式可以获取到正html Dom tree,下面例子:

def parse_from_unicode(unicode_str): #html DOM tree to lxml 格式

utf8_parser = lxml.etree.HTMLParser(encoding='utf-8')

s = unicode_str.encode('utf-8')

return lxml.etree.fromstring(s, parser=utf8_parser)

def parse(request):

driver = webdriver.PhantomJS()

html =driver.find_element_by_name('html')

lxml_html=parse_from_unicode(html)

kk=lxml_html.xpath('//tr') #使用xpath匹配