从 Web 抓取数据并同时执行 api 调用的编程语言
Which programming language to scrape data from web and do api calls at the same time?
我的项目处理从没有API的站点抓取大量数据或调用API(如果有)。使用多个线程来提高速度并实时工作。哪种编程语言更好?我对Python很满意。但是,线程是一个问题。因此,考虑在node中使用JS.js。因此,我应该选择哪个?
线程在
python 中是一个问题,只有当你想并行计算多个东西时。如果你只是想做很多请求,解释器的限制(一次只有一个线程解释python)不会成为问题。
事实上,要同时发出大量请求,您甚至不必使用大量线程。您可以使用异步请求库,例如 requests.async。
如果你有一些繁重的计算与请求的结果有关,你总是可以使用多处理在python中并行化它,这使您能够绕过我之前谈到的线程限制。
在python
中,您可以多线程抓取器。我过去用过美丽的汤,但也有替代品。
- 刮擦
- 机械化
- lxml
由于我有使用美丽汤的经验,下面是一个非常简单的示例来多处理刮刀。
from BeautifulSoup import BeautifulSoup
from multiprocessing import Process, JoinableQueue, cpu_count
jobs = []
queue = JoinableQueue()
class scraperClass(Process):
def __init__(self,queue):
Process.__init__(self)
# Other init things
def run(self):
# your scraping code here
# Perhaps save stuff to a DB?
page = urllib2.urlopen(fullUrl) # fullUrl can be passed in via the queue, or other possible methods
soup = BeautifulSoup(page)
# Read Beautiful Soup docs for how to parse further
def main():
numProcesses = 2
for i in xrange(numProcesses):
p = scraperClass(queue)
jobs.append(p)
p.start() # This will call the scapperClass.run() method
if __name__ == "__main__":
main()
我做了一个快速搜索,找到了一个名为Scrapy的pytohon抓取框架。它看起来很酷,但我还没有尝试过:http://scrapy.org/
这是他们教程中的一句话:
"所以你需要从网站中提取一些信息,但该网站不提供任何API或机制来以编程方式访问这些信息。Scrapy可以帮助你提取这些信息。
它说它也可以处理API调用
相关文章:
- JavaScript-如何从谷歌自动执行API获得城市名称建议
- Google API 的客户端库不会执行回调
- 使用 GitHub API 在 dojo 中执行 PUT 更新会返回 400:解析 JSON 时出现问题
- 如何使用应用程序脚本执行API从谷歌工作表中提取数据
- 如何在更少的 SQL 查询中执行复杂的 API 授权
- 对于javascript,对api“gapi.auth.authorize”的调用不会执行Google Analytic
- 延迟函数执行(API 调用)以在时间段内执行 n 次
- 从 Web 抓取数据并同时执行 api 调用的编程语言
- 获取请求后无法执行函数 - SoundCloud API
- 如何在角度 JS 中执行基于查询字符串的 API 调用
- Azure 自定义 API:执行数据库事务返回超时
- 如何通过文件 API 从 json 文件执行数据
- 谷歌地图api:地图不一致执行fitBounds
- 使用带有API密钥和Javascript的Google应用程序脚本执行API
- Google Geocode API的回调函数没有立即执行
- 如何使用用户过滤的关键字在Node.js中执行Twitter API搜索
- JavaScript API执行货币运算
- 无法通过HTTP API执行javascript命令
- 通过API执行用户操作
- 使用javascript API执行facebook搜索