【问题标题】:crawler to grab chrome extension id's抓取 chrome 扩展 ID 的爬虫
【发布时间】:2012-04-21 01:08:49
【问题描述】:

我将如何为 Google chrome 扩展程序网站编写爬虫? https://chrome.google.com/webstore/category/extensions

我正在对 chrome 扩展进行一些安全研究。每个类别大约有 100 个扩展,我现在遇到的问题是编写一个爬虫来至少抓取 UID。该网站似乎由 javascript 更新。如果我要获取 html,我将一无所获,因为该站点似乎在稍后阶段加载页面的其余部分。换句话说,我需要的核心内容(即具有所有扩展元素的 DOM)似乎在我使用 python 获取 HTML 之后加载。有什么想法吗?

【问题讨论】:

    标签: javascript google-chrome web-crawler


    【解决方案1】:

    是的,网页不包含数据 - 它是单独下载的。使用了这样的 URL:

    https://chrome.google.com/webstore/ajax/item?pv=1389738107&count=100&category=app/7-productivity

    请注意,这必须是一个 POST 请求(没有任何 POST 数据),出于安全原因,其他请求将被拒绝。您必须删除文件开头的")]}'" 和其他各个位置的"[]\n" - 然后您应该获得可以通过json.loads 解析的正确JSON。数据不是很结构化,但应该足以抓取。

    请注意,pv 参数看起来可能很快会改变(这个 Unix 时间对应于四天前的日期),您可以使用 Chrome 开发者工具的网络选项卡查看当前请求参数。 category 参数是类别的标识符 - 它是 Web Store 链接中 https://chrome.google.com/webstore/category/ 之后的 URL 部分。

    【讨论】:

    • @IvanThai:如果有帮助,请随时接受答案:stackoverflow.com/faq#howtoask
    • @WladimirWell; +1 这个问题似乎对我有很大帮助!我正在做同样的事情。但是,当我触发给定 URL 的请求时,我会收到一条回复说“发生错误”。我是否需要连同我的请求一起发送其他内容?任何帮助表示赞赏。
    • @TheRookierLearner:您发送 POST 请求了吗? Web Store 的工作方式没有真正的变化,只是类别标识符现在不同,pv 参数有一个新值(正如我在帖子中指出的,这可能每隔几天就会改变一次)。我用当前的 URL 参数更新了答案。
    • 是的,我做到了。但是我收到了“错误请求”消息。我还尝试使用https://chrome.google.com/webstore/ajax/item URL 下载扩展。 (更多细节here)但我收到一条 XMLHttpError 消息。
    • 另外,当我使用 Scrapy shell 向 Chrome Web Store 发出请求时,我只得到左侧列作为响应,而不是整个页面。
    猜你喜欢
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2021-10-22
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    相关资源
    最近更新 更多