Python 我们可以写一个脚本,可以用来刮多个网站
我已经为30个不同的网站写了30个不同的抓取脚本。我的一个朋友告诉我,可以用一个代码文件来抓取所有这30个网站,然后把它放到仪表板上进行动态抓取(我不明白他的意思)。我知道每个网站都有自己的结构,不同的数据来自不同的页面和元素。另一方面,一些网站提供动态数据,而不是静态数据,我使用selenium对其进行抓取 我真的不知道他在想什么,是否有可能遵循一条路径,在那里我纠正一个长脚本文件,并使用它来抓取许多网站 如果有人知道这方面的知识,能帮我提供想法、教程、网页内容和…,我将不胜感激。是的,你可以;Python 我们可以写一个脚本,可以用来刮多个网站,python,selenium,web-scraping,beautifulsoup,Python,Selenium,Web Scraping,Beautifulsoup,我已经为30个不同的网站写了30个不同的抓取脚本。我的一个朋友告诉我,可以用一个代码文件来抓取所有这30个网站,然后把它放到仪表板上进行动态抓取(我不明白他的意思)。我知道每个网站都有自己的结构,不同的数据来自不同的页面和元素。另一方面,一些网站提供动态数据,而不是静态数据,我使用selenium对其进行抓取 我真的不知道他在想什么,是否有可能遵循一条路径,在那里我纠正一个长脚本文件,并使用它来抓取许多网站 如果有人知道这方面的知识,能帮我提供想法、教程、网页内容和…,我将不胜感激。是的,你可以
但是如果你需要一些技术,我建议你换一种;你也可以用Splash处理动态网站,也可以用Scrapy。它们为大型/大型网络爬虫应用程序而开发,甚至用于生产。有一些工具,如报纸,可以让您为具有特定结构的站点定义一个刮取功能,然后刮取所有具有刮取功能的站点。正如它的名字所暗示的那样,报纸是新闻网站的开箱即用,但一般原则应该是显而易见的。我的脚本是从那些为小企业发布商业机会的网站上刮下来的。我正在为我的业务团队取消这些,以便他们了解来自其他组织的任何机会。现在就像我说的,我有很多脚本,每一个都是不同的。你能给我推荐一些主题,技术,图书馆。。。我跟随并寻找更多关于这方面的信息。@DRPK是的,亲爱的,但我不认为我们走在同一条道路上。您试图告诉我如何在报废时使用多处理技术(这里我们仍然有一长串报废程序),但我是说报废脚本应该是相同的,并且非常通用,可以用于报废许多网站。我说的对吗?你说的是软件架构之类的东西?制造微服务?或者你想要一些像Scrapy/Spider这样的技术?你知道刮痧吗?你也可以用Splash处理动态网站,Splash可以和Scrapy一起工作;他们为大型/大型网络爬虫应用程序制作,甚至用于生产。@DRPK,嘿,谢谢你的评论,你看起来很支持我,我很感激。我可以收到你的电子邮件,以便我在那里与你进行更多的讨论。如果你需要并行运行,多处理和/或多线程是很有用的,如果你扩展到数千个网站,最终可能需要多处理和/或多线程;但对于几十个人来说,这可能是一个不必要的复杂因素。@tripleee是的,你是对的,我们有很多方法可以完成他的工作。我刚才解释了其中一种,但关于不必要的复杂因素,你没有。与许多语言不同,python很简单,其模块也很简单。python是为实现高科技而设计的,只需几行代码。
# This code will not run!
from multiprocessing import Pool
from Scrapers import Scraper1, Scraper2, Scraper3, ...
def run_each_scraper(get_scraper_object):
get_scraper_object.run()
def launcher():
list_of_websites = []
# use loops here
reserve_scraper_objects_for_websites = [Scraper1.scrape(list_of_websites[0]),
Scraper2.scrape(list_of_websites[1]),
...]
process_objects = Pool(20) # Depends on your system resource
process_objects.map(run_each_scraper, reserve_scraper_objects_for_websites)
if __name__ == '__main__':
launcher()