• 技术文章 >后端开发 >Python教程

    利用python如何爬取js里面的内容

    零到壹度零到壹度2018-04-10 09:54:12原创7863

    本篇文章给大家分享的内容是3利用python如何爬取js里面的内容 ,有着一定的参考价值,有需要的朋友可以参考一下

    一、在编写爬虫软件获取所需内容时可能会碰到所需要的内容是由javascript添加上去的 在获取的时候为空 比如我们在获取新浪新闻的评论数时使用普通的方法就无法获取


    普通获取代码示例:

    import requests
    from bs4 import BeautifulSoup
    
    res = requests.get('http://news.sina.com.cn/c/nd/2017-06-12/doc-ifyfzhac1650783.shtml')
    res.encoding = 'utf-8'
    soup = BeautifulSoup(res.text,'html.parser')
    #取评论数
    commentCount = soup.select_one('#commentCount1')
    print(commentCount.text)

    此时所获取的结果为空 这是由于内容是存储在js文件中

    因此我们需要取寻找存储评论内容的js 经过查找我们发现其存储在改js里

    将相应内容放入json数据查看器中我们发现评论总数和评论内容都在该js文件中一json格式存放



    在消息头中我们可以看的该js文件的访问路径及请求方式

    代码示例

    import json
    comments = requests.get('http://comment5.news.sina.com.cn/page/info?version=1&format=js&channel=gn&newsid=comos-fyfzhac1650783')
    comments.encoding = 'utf-8'
    print(comments)
    jd = json.loads(comments.text.strip('var data=')) #移除改var data=将其变为json数据
    print(jd['result']['count']['total'])


    注释:这里解释下为何需要移除 var data= 因为在获取时字符串前缀是包含var data=的 其不符合json数据格式 因此转化时需将其从请求内容中移除

    取评论总数时为何使用jd['result']['count']['total']


    以上就是利用python如何爬取js里面的内容的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:javascript python 爬取
    上一篇:Anaconda的新手使用大全 下一篇:Python中title()方法的使用
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• Python编码规范知识点整理• 完全掌握Python自动操作GUI之PyAutoGUI• 一文搞懂python中Tkinter的使用• 聊聊利用python怎么读取mat文件内容(matlab数据)• Python可视化总结之matplotlib.pyplot基本参数详解
    1/1

    PHP中文网