【问题标题】:Python web scraper of javascript Div tablejavascript div表的python网络爬虫
【发布时间】:2021-09-07 02:57:43
【问题描述】:

我有一个批发网站(登录后),我正在尝试获取库存水平。我已经创建了我的 python 脚本,它给出了 200 的登录响应。

我正试图弄清楚如何抓取库存。我 99% 确定它是 javascript,但即使它是我也不知道如何返回数据,因为它在 div 中而不是在表中(而且我不想返回每个 div)。

这是html页面源 https://jsfiddle.net/3t6vjyLx/1/ the code is in the jsfiddle---too large to post here 当我检查它给我的元素然后

我需要做什么才能在我的 Python 脚本中完全加载页面,以便我能够提取该产品计数?

将有 64 个单独的产品计数(每个产品有 8 个位置和 5 个尺寸)...有没有办法以特定方式将其保存在表格中,以便按尺寸排序?由于这不是使用使其变得更加困难的表格创建的,但我想学习如何做到这一点。

谢谢!

https://i.stack.imgur.com/L2MZV.png这是对元素的检查

【问题讨论】:

    标签: javascript python selenium web-crawler


    【解决方案1】:

    一种解决方案是使用像 requests_html 这样的库来创建一个 HTMLSession() 来加载您可以解析的 javascript 元素。

    代码可能如下所示:

    from requests_html import HTMLSession
    
    def get_html(url):
        session = HTMLSession()
        r = session.get(url)
        r.html.render()  # renders javascript html and stores it in {obj}.html.html
        return r.html.html
    

    虽然这种解决方案可能不是最优雅的(网络抓取很少),但我相信如果您只抓取少量数据,它就足够了。

    【讨论】:

    • 如果你看一下jsfiddle就会有源代码
    • 现在我已经完成了,有没有办法打印呈现的 html 会话,以便我可以找到需要抓取的 div?
    • page = driver.page_source soup = BeautifulSoup(page, "lxml") 如果使用 Selenium
    猜你喜欢
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 2013-01-09
    相关资源
    最近更新 更多