通过js2xml处理script里的数据

阿里云双11来了!从本博客参与阿里云,服务器最低只要86元/年!

新手叨叨

说实话,现在的网站,对我们这些小爬虫新手实在是太不友好了。
今天要入了一个打开页面啥都有,打开html啥都没有的坑了。


image.png


image.png

这时我们应该就要反应过来,去找一下数据在哪呢?直接搜索一下,发现它全在一个script里的变量中,这样的情况我们有两种处理方法

  • 使用scrapy-splash直接加载出来html所有内容,再进行处理。但因为splash的安装过于繁琐,对于一些小伙伴太不友好,先放下,等别的方法处理不了再考虑这个方法
  • 使用js2xml将script里的数据进行转换成lxml的形式,再通过xpath定位到每个所需数据的位置。
# 回复详情
        reply_area = soup.select('script')[15].string
        reply_text = js2xml.parse(reply_area, debug=False)
        reply_tree = js2xml.pretty_print(reply_text)
        selector = etree.HTML(reply_tree)
        username = selector.xpath('//property[@name="kind"]/following-sibling::property[@name="name"]/string/text()')
        content = selector.xpath('//property[@name="text"]/string/text()')
        time = selector.xpath('//property[@name="create_time"]/string/text()')
        comment_id = selector.xpath('//property[@name="create_time"]/following-sibling::property[@name="id"]/string/text()')

https://www.jianshu.com/p/55965ef6f996

Python量化投资网携手4326手游为资深游戏玩家推荐:《卡通射手2下载

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论