Selenium在异步加载中的应用

  1. 云栖社区>
  2. 博客>
  3. 正文

Selenium在异步加载中的应用

是罗罗攀啊 2017-05-05 18:37:00 浏览557
展开阅读全文

简书文章异步加载

之前爬虫小分队的第一次作业就是爬取简书七日热门,同学们应该知道部分数据是异步加载的,对于阅读,评论,喜欢的抓取数据策略为使用正则表达式匹配,收录专题就是找包来获取数据的。


img_fad2f6a2d5bd106fe76d5bd35c341765.png

img_8a58d25cbf2fc633417afb20db2b27b5.png

Selenium代码

from selenium import webdriver
url = 'http://www.jianshu.com/p/c9bae3e9e252'
def get_info(url):
    include_title =[]
    driver = webdriver.PhantomJS()
    driver.get(url)
    driver.implicitly_wait(20)
    author = driver.find_element_by_xpath('//span[@class="name"]/a').text
    date = driver.find_element_by_xpath('//span[@class="publish-time"]').text
    word = driver.find_element_by_xpath('//span[@class="wordage"]').text
    view = driver.find_element_by_xpath('//span[@class="views-count"]').text
    comment = driver.find_element_by_xpath('//span[@class="comments-count"]').text
    like = driver.find_element_by_xpath('//span[@class="likes-count"]').text
    included_names = driver.find_elements_by_xpath('//div[@class="include-collection"]/a/div')
    for i in included_names:
        include_title.append(i.text)
    print(author,date,word,view,comment,like,include_title)
get_info(url)

由于只搞了一个页面的,没有存入数据库,就打印了结果。


3629157-0b2ead888f6baaa9.jpg

代码分析

由于selenium是加载了javascript的,所以我们用chrome浏览器,直接检查的xpath路径就能提取到信息,以收录专题为例,检查元素,来构造xpath路径,这样就不用找包啦。


img_a5c44ddeffdffa9450d6f7f38f092a9d.png

网友评论

登录后评论
0/500
评论
是罗罗攀啊
+ 关注