怎样使用scrapy爬取js动态生成的数据

JavaScript09

怎样使用scrapy爬取js动态生成的数据,第1张

这个方法只是获取页面源码;你的要求是获取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匹配

一、查看相应的js代码,用python获取原始数据之后,模仿js编写相应的python代码。

二、通过接口api获得数据,直接使用python获取接口数据并处理。

三。终极方法。使用 Selenium和PhantomJS执行网页js代码,然后再获取数据,这种方法100%可以获取数据,确定就是速度太慢。