mirror of
https://github.com/VinciGit00/Scrapegraph-ai.git
synced 2026-07-12 21:01:56 +08:00
feat: add html_mode to smart_scraper
This commit is contained in:
parent
e5ac0205d1
commit
bdcffd6360
48
examples/extras/html_mode.py
Normal file
48
examples/extras/html_mode.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
"""
|
||||||
|
Basic example of scraping pipeline using SmartScraper
|
||||||
|
By default smart scraper converts in md format the
|
||||||
|
code.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
from scrapegraphai.graphs import SmartScraperGraph
|
||||||
|
from scrapegraphai.utils import prettify_exec_info
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
# ************************************************
|
||||||
|
# Define the configuration for the graph
|
||||||
|
# ************************************************
|
||||||
|
|
||||||
|
|
||||||
|
graph_config = {
|
||||||
|
"llm": {
|
||||||
|
"api_key": os.getenv("OPENAI_API_KEY"),
|
||||||
|
"model": "openai/gpt-4o",
|
||||||
|
},
|
||||||
|
"html_mode": True,
|
||||||
|
"verbose": True,
|
||||||
|
"headless": False,
|
||||||
|
}
|
||||||
|
|
||||||
|
# ************************************************
|
||||||
|
# Create the SmartScraperGraph instance and run it
|
||||||
|
# ************************************************
|
||||||
|
|
||||||
|
smart_scraper_graph = SmartScraperGraph(
|
||||||
|
prompt="List me what does the company do, the name and a contact email.",
|
||||||
|
source="https://scrapegraphai.com/",
|
||||||
|
config=graph_config
|
||||||
|
)
|
||||||
|
|
||||||
|
result = smart_scraper_graph.run()
|
||||||
|
print(json.dumps(result, indent=4))
|
||||||
|
|
||||||
|
# ************************************************
|
||||||
|
# Get graph execution info
|
||||||
|
# ************************************************
|
||||||
|
|
||||||
|
graph_exec_info = smart_scraper_graph.get_execution_info()
|
||||||
|
print(prettify_exec_info(graph_exec_info))
|
||||||
@ -69,14 +69,7 @@ class SmartScraperGraph(AbstractGraph):
|
|||||||
"scrape_do": self.config.get("scrape_do")
|
"scrape_do": self.config.get("scrape_do")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
parse_node = ParseNode(
|
|
||||||
input="doc",
|
|
||||||
output=["parsed_doc"],
|
|
||||||
node_config={
|
|
||||||
"llm_model": self.llm_model,
|
|
||||||
"chunk_size": self.model_token
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
generate_answer_node = GenerateAnswerNode(
|
generate_answer_node = GenerateAnswerNode(
|
||||||
input="user_prompt & (relevant_chunks | parsed_doc | doc)",
|
input="user_prompt & (relevant_chunks | parsed_doc | doc)",
|
||||||
@ -88,19 +81,43 @@ class SmartScraperGraph(AbstractGraph):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if self.config.get("html_mode") is not True:
|
||||||
|
|
||||||
|
parse_node = ParseNode(
|
||||||
|
input="doc",
|
||||||
|
output=["parsed_doc"],
|
||||||
|
node_config={
|
||||||
|
"llm_model": self.llm_model,
|
||||||
|
"chunk_size": self.model_token
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
return BaseGraph(
|
||||||
|
nodes=[
|
||||||
|
fetch_node,
|
||||||
|
parse_node,
|
||||||
|
generate_answer_node,
|
||||||
|
],
|
||||||
|
edges=[
|
||||||
|
(fetch_node, parse_node),
|
||||||
|
(parse_node, generate_answer_node)
|
||||||
|
],
|
||||||
|
entry_point=fetch_node,
|
||||||
|
graph_name=self.__class__.__name__
|
||||||
|
)
|
||||||
|
|
||||||
return BaseGraph(
|
return BaseGraph(
|
||||||
nodes=[
|
nodes=[
|
||||||
fetch_node,
|
fetch_node,
|
||||||
parse_node,
|
generate_answer_node,
|
||||||
generate_answer_node,
|
],
|
||||||
],
|
edges=[
|
||||||
edges=[
|
(fetch_node, generate_answer_node)
|
||||||
(fetch_node, parse_node),
|
],
|
||||||
(parse_node, generate_answer_node)
|
entry_point=fetch_node,
|
||||||
],
|
graph_name=self.__class__.__name__
|
||||||
entry_point=fetch_node,
|
)
|
||||||
graph_name=self.__class__.__name__
|
|
||||||
)
|
|
||||||
|
|
||||||
def run(self) -> str:
|
def run(self) -> str:
|
||||||
"""
|
"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user