微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用 requests_html 抓取网站

如何解决无法使用 requests_html 抓取网站

我正在尝试制作一个脚本来跟踪来自不同快递员的包裹,但问题是 requests_html 似乎不适用于他们的 javascript。 [这个][1] 是我想从中获取信息的链接。打开html,可以看到这个javascript函数

        function stopLoading(error) {//loading hide

        $('#progress').css('display','none');
        if (!error) {
            $('#main-content').css('display','block');
        } else {
            $('#diverror').css('display','block');
            $('#diverror p').text(error);
        }
    }

我可以猜到,如果没有错误(?) ma​​in-content 变得可见并且 diverror 保持显示 none。但是每当我运行我的脚本时,结果范围从加载错误diverrorma​​in-content 都在 display=none;>

这是我的代码

import bs4
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://wkfsrv.acscourier.net/apps/track-shipment/?id=4716811960')

r.html.render()
page=r.html.raw_html
soup = bs4.BeautifulSoup(page.decode('utf-8','ignore'),features="html.parser")

我试过 selenium 但它太重了,我自己发送 GET 请求,但我还不够好,无法让它工作,在 render() 中传递一个 Javascript 参数,但它不能带回不存在的东西.我开始认为这是网页本身的问题。任何帮助(甚至确认我上面的结论)都会有所帮助。 [1]:https://wkfsrv.acscourier.net/apps/track-shipment/?id=4718427210&token_hash=track-4718427210

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。