整个网站转变为适用于大模型训练的 Markdown 或结构化数据。使用单个 API 进行抓取、爬行、搜索和提取。
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;text-shadow: rgb(123, 123, 123) 0px 0px;line-height: 1.75;color: rgb(0, 152, 116);"> ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">Hello,大家好,我是Aitrainee。今天给大家介绍一下Firecrawl,这是一个实用的爬虫工具。Firecrawl 是什么?ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">Firecrawl就像一个智能机器人,从你给定的网页开始,自动找到并访问这个网站上的所有其他页面。它会提取每个页面中的主要内容,去掉广告和其他不需要的东西,然后把这些信息整理好,让你方便使用。而且,它不需要网站提供的地图文件来找到这些页面。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">Firecrawl可以从你指定的网页开始,自动访问这个网站上所有能打开的子页面。就像你点开一个链接后,它会继续点开这个页面里的所有链接,直到把所有页面都访问一遍。只要这些页面没有被网站的设置阻止(比如没有被robots.txt文件禁止访问),Firecrawl就能爬取它们。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">此外,Firecrawl还会从每个页面中提取有用的信息,去掉不重要的内容(比如广告和导航栏),并把这些数据整理成易于使用的格式,比如Markdown。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin-top: 2em;margin-right: 8px;margin-bottom: 0.75em;padding-left: 8px;border-left: 3px solid rgb(0, 152, 116);color: rgb(63, 63, 63);">站点地图是什么?ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">站点地图(sitemap)是一个网站提供的文件,列出网站上的所有页面。它帮助搜索引擎或爬虫更快地找到和访问这些页面。站点地图通常是一个XML文件,里面包含网站上所有页面的链接。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">总结一下: ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;padding-left: 1em;color: rgb(63, 63, 63);" class="list-paddingleft-1">1.Firecrawl会自动从你给定的网页开始,遍历网站上的所有链接,爬取所有能访问的页面。 2.它会去除杂乱信息,提取有用的数据并整理好。 3.无需站点地图,Firecrawl也能找到并爬取所有页面。 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;border-left: 3px solid rgb(0, 152, 116);color: rgb(63, 63, 63);">演示视频油管博主:开发者文稿 / 字幕译:Aitrainee,链接在这里: https://www.youtube.com/watch?v=fDSM7chMo5E 下面提供官方的文档介绍、相关资源、部署教程等,进一步支撑你的行动,以提升本文的帮助力。 ? Firecrawl 我们提供了易于使用的API托管版本。您可以在这里找到演示和文档。您也可以自行托管后台服务。
要在本地运行,请参考指南。 API密钥要使用API,您需要在Firecrawl注册并获取API密钥。 爬取用于爬取一个URL及其所有可访问的子页面。此操作提交一个爬取任务并返回一个作业ID以检查爬取状态。 curl-XPOSThttps://api.firecrawl.dev/v0/crawl\ -H'Content-Type:application/json'\ -H'Authorization:BearerYOUR_API_KEY'\ -d'{ "url":"https://mendable.ai" }'
返回一个作业ID {"jobId":"1234-5678-9101"}检查爬取作业用于检查爬取作业的状态并获取其结果。 curl-XGEThttps://api.firecrawl.dev/v0/crawl/status/1234-5678-9101\ -H'Content-Type:application/json'\ -H'Authorization:BearerYOUR_API_KEY'
{ "status":"completed", "current":22, "total":22, "data":[ { "content":"RawContent", "markdown":"#MarkdownContent", "provider":"web-scraper", "metadata":{ "title":"Mendable|AIforCXandSales", "description":"AIforCXandSales", "language":null, "sourceURL":"https://www.mendable.ai/" } } ] }
爬取用于爬取一个URL并获取其内容。 curl-XPOSThttps://api.firecrawl.dev/v0/scrape\ -H'Content-Type:application/json'\ -H'Authorization:BearerYOUR_API_KEY'\ -d'{ "url":"https://mendable.ai" }'
响应: { "success":true, "data":{ "content":"RawContent", "markdown":"#MarkdownContent", "provider":"web-scraper", "metadata":{ "title":"Mendable|AIforCXandSales", "description":"AIforCXandSales", "language":null, "sourceURL":"https://www.mendable.ai/" } } }
搜索(测试版)用于搜索网络,获取最相关的结果,爬取每个页面并返回Markdown格式的数据。 curl-XPOSThttps://api.firecrawl.dev/v0/search\ -H'Content-Type:application/json'\ -H'Authorization:BearerYOUR_API_KEY'\ -d'{ "query":"firecrawl", "pageOptions":{ "fetchPageContent":true//设置为false可快速获取搜索引擎结果页面 } }'
{ "success":true, "data":[ { "url":"https://mendable.ai", "markdown":"#MarkdownContent", "provider":"web-scraper", "metadata":{ "title":"Mendable|AIforCXandSales", "description":"AIforCXandSales", "language":null, "sourceURL":"https://www.mendable.ai/" } } ] }
智能提取(测试版)用于从爬取的页面中提取结构化数据。 curl-XPOSThttps://api.firecrawl.dev/v0/scrape\ -H'Content-Type:application/json'\ -H'Authorization:BearerYOUR_API_KEY'\ -d'{ "url":"https://www.mendable.ai/", "extractorOptions":{ "mode":"llm-extraction", "extractionPrompt":"Basedontheinformationonthepage,extracttheinformationfromtheschema.", "extractionSchema":{ "type":"object", "properties":{ "company_mission":{ "type":"string" }, "supports_sso":{ "type":"boolean" }, "is_open_source":{ "type":"boolean" }, "is_in_yc":{ "type":"boolean" } }, "required":[ "company_mission", "supports_sso", "is_open_source", "is_in_yc" ] } } }'
{ "success":true, "data":{ "content":"RawContent", "metadata":{ "title":"Mendable", "description":"MendableallowsyoutoeasilybuildAIchatapplications.Ingest,customize,thendeploywithonelineofcodeanywhereyouwant.BroughttoyoubySideGuide", "robots":"follow,index", "ogTitle":"Mendable", "ogDescription":"MendableallowsyoutoeasilybuildAIchatapplications.Ingest,customize,thendeploywithonelineofcodeanywhereyouwant.BroughttoyoubySideGuide", "ogUrl":"https://mendable.ai/", "ogImage":"https://mendable.ai/mendable_new_og1.png", "ogLocaleAlternate":[], "ogSiteName":"Mendable", "sourceURL":"https://mendable.ai/" }, "llm_extraction":{ "company_mission":"TrainasecureAIonyourtechnicalresourcesthatanswerscustomerandemployeequestionssoyourteamdoesn'thaveto", "supports_sso":true, "is_open_source":false, "is_in_yc":true } } }
使用Python SDK安装Python SDKpipinstallfirecrawl-py 爬取一个网站fromfirecrawlimportFirecrawlApp
app=FirecrawlApp(api_key="YOUR_API_KEY")
crawl_result=app.crawl_url('mendable.ai',{'crawlerOptions':{'excludes':['blog/*']}})
#获取Markdown内容 forresultincrawl_result: print(result['markdown'])
爬取一个URL要爬取单个URL,请使用scrape_url方法。它接收URL作为参数并返回爬取的数据字典。 url='https://example.com' scraped_data=app.scrape_url(url)
从URL中提取结构化数据通过LLM提取,您可以轻松地从任何URL中提取结构化数据。我们支持Pydantic模型,使其更容易使用。以下是使用方法: classArticleSchema(BaseModel): title:str points:int by:str commentsURL:str
classTopArticlesSchema(BaseModel): top ist[ArticleSchema]=Field(...,max_items=5,description="Top5
stories")
data=app.scrape_url('https://news.ycombinator.com',{ 'extractorOptions':{ 'extractionSchema':TopArticlesSchema.model_json_schema(), 'mode':'llm-extraction' }, 'pageOptions':{ 'onlyMainContent':True } }) print(data["llm_extraction"])
搜索查询执行网络搜索,获取顶级结果,提取每个页面的数据,并返回它们的Markdown格式内容。 query='WhatisMendable?' search_result=app.search(query)
使用Node SDK安装要安装Firecrawl Node SDK,可以使用npm: npminstall@mendable/firecrawl-js 使用方法1.从firecrawl.dev获取API密钥。 2.将API密钥设置为环境变量FIRECRAWL_API_KEY,或将其作为参数传递给FirecrawlApp类。
爬取URL要爬取单个URL并进行错误处理,请使用scrapeUrl方法。它接收URL作为参数并返回爬取的数据字典。 try{ consturl='https://example.com'; constscrapedData=awaitapp.scrapeUrl(url); console.log(scrapedData); }catch(error){ console.error( 'Erroroccurredwhilescraping:', error.message ); }
爬取网站要爬取网站并进行错误处理,请使用crawlUrl方法。它接收起始URL和可选参数作为参数。params参数允许您指定爬取任务的附加选项,例如最大爬取页面数、允许的域和输出格式。 constcrawlUrl='https://example.com'; constparams={ crawlerOptions:{ excludes:['blog/'], includes:[],//留空以包含所有页面 limit:1000, }, pageOptions:{ onlyMainContent:true } }; constwaitUntilDone=true; consttimeout=5; constcrawlResult=awaitapp.crawlUrl( crawlUrl, params, waitUntilDone, timeout );
检查爬取状态要检查爬取任务的状态并进行错误处理,请使用checkCrawlStatus方法。它接收作业ID作为参数并返回爬取任务的当前状态。 conststatus=awaitapp.checkCrawlStatus(jobId); console.log(status);
从URL中提取结构化数据通过LLM提取,您可以轻松地从任何URL中提取结构化数据。我们支持zod模式,使其更容易使用。以下是使用方法: importFirecrawlAppfrom"@mendable/firecrawl-js"; import{z}from"zod";
constapp=newFirecrawlApp({ apiKey:"fc-YOUR_API_KEY", });
//定义要提取内容的模式 constschema=z.object({ top:z .array( z.object({ title:z.string(), points:z.number(), by:z.string(), commentsURL:z.string(), }) ) .length(5) .describe("HackerNews上的前5个故事"), });
constscrapeResult=awaitapp.scrapeUrl("https://news.ycombinator.com",{ extractorOptions:{extractionSchema:schema}, });
console.log(scrapeResult.data["llm_extraction"]);
搜索查询通过search方法,您可以在搜索引擎中搜索查询并获取顶级结果及每个结果的页面内容。该方法接收查询作为参数并返回搜索结果。 constquery='whatismendable?'; constsearchResults=awaitapp.search(query,{ pageOptions:{ fetchPageContent:true//获取每个搜索结果的页面内容 } });
参考链接: [1]https://github.com/mendableai/firecrawl
|