2017-09-14 61 views
0

我经常需要从互联网网页解析/抓取信息。我正在使用lxmlrequests。几乎在所有情况下,信息都是连续的,如股票相关信息或日期明智信息。目前,我运行一个列表理解来运行循环。我想知道是否有一种方法可以在同一时间解析多个页面?我知道多处理/分叉,但我会感谢一些更简单的解决方案。这里是我的示例代码同时解析多个网页

[lxml.html.fromstring(requests.get(i).content).xpath("//tr//td//text()") for i in ("some_list of url addresses")] 

这工作得很好,但我希望能够在循环的单次运行分析不止一个(可能高达8)的网页,有点类似于在浏览器中打开多个网页。

+0

调查scrapy。 –

回答

0

我知道你写过你了解多处理。 但是你也表示你搜索一个简单的解决方案,我认为线程提供了这样一个简单的解决方案。

import requests 
import lxml 
import threading 

urls = ["sample.com", "sample2.com", "sample3.com"] 


def scrap(url): 
    return lxml.html.fromstring(requests.get(i).content).xpath("//tr//td//text()") 

for url in urls: 
    if threading.active_count() < 8: 
     threading.Thread(target=scrap, args=(url,)).start()