Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从多个网站抓取/提取数据的最佳方法_Python_Beautifulsoup_Scrapy - Fatal编程技术网

Python 从多个网站抓取/提取数据的最佳方法

Python 从多个网站抓取/提取数据的最佳方法,python,beautifulsoup,scrapy,Python,Beautifulsoup,Scrapy,我对提到的问题是新手,刚刚开始学习如何抓取网站 我开始了解python BeautifulSoup4,它非常适合从网站提取数据。我的主要问题是处理大量的网站 例如,超过10000个不同的网站。 据我所知和研究到现在为止,爬行是在我们告诉程序不同标记的类时完成的,例如 <h3 class="this">Hello World </h3> 从上面的例子可以清楚地看出,我们有一个站点,其中h3标签具有一个类“this” 现在有超过10000个不同的网站,有

我对提到的问题是新手,刚刚开始学习如何抓取网站

我开始了解python BeautifulSoup4,它非常适合从网站提取数据。我的主要问题是处理大量的网站

例如,超过10000个不同的网站。 据我所知和研究到现在为止,爬行是在我们告诉程序不同标记的类时完成的,例如

<h3 class="this">Hello World </h3>
从上面的例子可以清楚地看出,我们有一个站点,其中h3标签具有一个类“this”


现在有超过10000个不同的网站,有不同的类和结构。最好的方法是什么?我正在尝试开发一种类似“谷歌”的搜索引擎,但有一些特定数量的网站(即10000个或将来可能更多)。

据我所知,您问题的主要问题是如何使响应时间尽可能短(毫秒)。在这种情况下,据我所知,最好的解决方案是通过map-reduce技术在不同的计算节点之间分割爬行作业。如果我不高兴,请纠正我wrong@dorintufar. 这将是我的下一个问题,因为响应时间也是一个重要的问题。但现在的问题是,我应该做什么,或者编写一个通用的或全局的解决方案来解决这个问题,例如,正如我前面提到的,evey网站有不同的上下文和不同的结构以及不同的类。我的目标是抓取数据,就像谷歌对10000多个网站所做的那样。当然,我不能为每个网站创建10000个不同的函数。css/xpath选择器可以在不同的网站上有所不同,但在html结构中(对于大多数网站)有些东西保持不变,这就是标题和标题。Head很有可能存储一些描述网站内容的元标签。我不知道,也许它会对你有用:)但事实上,没有办法预测页面的内容
    url = 'http://www.anyurl.com'
    source = requests.get(url)
    plain_text = source.text
    soup = BeautifulSoup(plain_text,"html.parser")
        h3_text = soup.find('h3', {'class':'this'}) 
        print(h3_text.text)