Selenium在异步加载中的应用

简书文章异步加载

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



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)

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


代码分析

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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,081评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,269评论 4 61
  • 《我把一切告诉你》蓝小雨冠军销售之最实用的珠宝首饰销售技巧 珠宝首饰销售是一门艺术,营业员在整个销售中起着至关重要...
    职场精英阅读 1,137评论 0 1
  • 人少少,你咪认咗佢咯 喺咯,其实有边个嚟姨妈家私,啊唔喺,喺宜家家私喺食嘢多过买嘢架?!当然仲有大把文青嚟食完嘢之...
    点HEA阅读 610评论 0 0
  • 人跟人的差距过大,容易引发弱者向强者的索取姿态,想着一步登天的急迫妄想,低头无节操地向强者乞求,说不定能换得几年努...
    捡石头的村童阅读 195评论 0 1