爬取网页并输出JSON数据

有些时候我们需要爬取一些结构性比较强的网页,并且需要将网页中的信息以JSON的方式返回回来。

我们就可以使用 LLMRequestsChain 类去实现,具体可以参考下面代码

为了方便理解,我在例子中直接使用了Prompt的方法去格式化输出结果,而没用使用上个案例中用到的 StructuredOutputParser去格式化,也算是提供了另外一种格式化的思路

  1. from langchain.prompts import PromptTemplate
  2. from langchain.llms import OpenAI
  3. from langchain.chains import LLMRequestsChain, LLMChain
  4. llm = OpenAI(model_name="gpt-3.5-turbo", temperature=0)
  5. template = """在 >>> 和 <<< 之间是网页的返回的HTML内容。
  6. 网页是新浪财经A股上市公司的公司简介。
  7. 请抽取参数请求的信息。
  8. >>> {requests_result} <<<
  9. 请使用如下的JSON格式返回数据
  10. {{
  11. "company_name":"a",
  12. "company_english_name":"b",
  13. "issue_price":"c",
  14. "date_of_establishment":"d",
  15. "registered_capital":"e",
  16. "office_address":"f",
  17. "Company_profile":"g"
  18. }}
  19. Extracted:"""
  20. prompt = PromptTemplate(
  21. input_variables=["requests_result"],
  22. template=template
  23. )
  24. chain = LLMRequestsChain(llm_chain=LLMChain(llm=llm, prompt=prompt))
  25. inputs = {
  26. "url": "https://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpInfo/stockid/600519.phtml"
  27. }
  28. response = chain(inputs)
  29. print(response['output'])

我们可以看到,他很好的将格式化后的结果输出了出来

爬取网页并输出JSON数据 - 图1