【问题标题】:Using Bash scripting for web scraping over python libraries? [closed]使用 Bash 脚本对 python 库进行网络抓取? [关闭]
【发布时间】:2017-07-22 15:59:51
【问题描述】:

我正在尝试从一般进行网络抓取的有经验的人那里获取更多信息,我正在使用 Python 库进行网络抓取。同时,我注意到有些人在使用简单的 Bash,并使用诸如 wget, curl, sed, grep, awk 之类的命令进行网页抓取。

这些命令在脚本编写中似乎比使用 Python 库进行网络抓取要干净得多。

您对此有何看法?您是否看到使用 python 库而不是我没有得到的 Bash 优势?或者甚至使用 Python 和 Bash 来完成网页抓取?

【问题讨论】:

  • 嗯,这是编码风格的问题。一般来说,如果您可以将 Python 库用于特定任务,请通过 Bash 命令使用它。
  • 是的,运行一个程序而不是许多程序有一个巨大的优势。
  • 好吧,python 需要这些库。不像你可以直接使用python。

标签: python bash curl sed web-scraping


【解决方案1】:

BeautifulSoupRequests 是目前最好的程序化抓取工具。它们被广泛使用、经常更新,并且专注于易用性(请求的座右铭是HTTP for Humans)。

【讨论】:

  • 你看到 curl 或 get 有什么可能吗?一行命令?
  • 大多数有经验的程序员都熟悉 curl 和 get。关键是使用python更容易使用、更容易阅读、更易于维护。整个行业的专业人士都使用它是有原因的。如果您只需要一个脚本来从 Internet 获取页面,请务必使用 bash。但是 bash 有数据库驱动程序吗?它有模块吗?使用 python 有很多优点。
  • 我认为对 Python 有利的另一点是 JSON 作为一种数据格式已经变得越来越普遍。当然,对于一次性下载网页,curl 是久经沙场的出色工具,但想象一下使用curl 和其他 unix 工具抓取 REST API?您可以花时间学习jq 的语法,或者您可以直接使用requests,调用r.json() 并完成您的任务。
  • 是的,这些都很好。我想我想了解更多关于是否在 bash 上投入更多时间还是在 python 库上投入更多时间的信息,但最后,我想这将基于可用的知识和工具。与其说是使用一种特定的语言而不是另一种。
【解决方案2】:

使用 Python,您还可以使用 selenium 和 PhantomJS 等无头浏览器抓取使用 JavaScript 呈现的网站。也许这也可以通过 bash 脚本实现,但是代码越复杂,python 恕我直言的清晰优势就越大。

【讨论】:

  • 谢谢,我没想过要处理 javascript。
猜你喜欢
  • 1970-01-01
  • 2011-01-06
  • 2018-04-17
  • 1970-01-01
  • 2017-09-26
  • 2020-09-25
  • 2021-06-01
相关资源
最近更新 更多