最新版本:成品小说网站源码仿笔趣阁+手机版APP带全自动采集功能

优采云 发布时间: 2022-10-06 15:15

  最新版本:成品小说网站源码仿笔趣阁+手机版APP带全自动采集功能

  可组合性是重用系统组件来开发应用程序的一般能力。例如,乐高积木是可以创建的许多不同结构的构建块。在 web3 世界中,基于文本的 NFT 只是类似于乐高积木的单词列表,允许社区围绕这些可组合部分构建完全自动化的 采集fiction网站 源代码。

  资料来源:xsymz.icu

  本期文章将介绍我是如何搭建基于DevDaoNFT的动态视觉小说站源码DevDaoStory。我将重点介绍如何构建以下部分:

  ● 前端使用服务器端渲染

  ●使用 OpenSea API 进行身份验证

  ●使用Ren'py引擎生成独特的游戏

  前端

  用户界面是一个使用 HTML、Bootstrap、JavaScript、jinja2 和 JQuery 构建的 网站。我发现使用原语构建最容易,而不是被锁定在像 React 这样的框架中以获得简单的界面。

  DevDaoStory 主页

  由于我使用 jinja2 进行服务器端渲染,因此该应用程序托管在 AWS Lambda 和 API Gateway 上,每月有 100 万次免费使用事件,这为托管应用程序提供了一种经济高效的方式。

  这个应用程序只有两个页面,主页和选择您的开发页面。这是在用户钱包中呈现 Devs 的代码片段。

    {% for dev in devs %}

  

  

  Dev #{{dev['id']}}

  

  

  

  

  Os: {{dev['os']}}

  Text Editor: {{dev['textEditor']}}

  Language: {{dev['language']}}

  Vibe: {{dev['vibe']}}

  Location: {{dev['location']}}

  Mind: {{dev['mind']}}

  Industry: {{dev['industry']}}

  Clothing: {{dev['clothing']}}

  Background: {{dev['background']}}

  

  

  

  身份

  为了理解 Devs,用户已经连接到后端系统,我利用 ethers.js 库为用户提供了一种使用 MetaMask 签署“登录”消息的方法。

    async function connectWallet() {

  if (window.ethereum) {

  try {

  const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' });

  console.log("accounts")

  console.log(accounts)

  walletProvider = new ethers.providers.Web3Provider(window.ethereum)

  walletSigner = walletProvider.getSigner();

  const base_message = "Login to DevDaoStory"

  const signature = await walletSigner.signMessage(base_message)

  console.log(signature)

  login_info = {}

  login_info["address"] = accounts[0]

<p>

  login_info["signature"] = signature

  login_info["message"] = base_message

  var login_info_string = JSON.stringify(login_info)</p>

  此代码为用户提供了一种允许应用程序读取其公钥的方法,因此可以对其开发人员进行身份验证。

  登录 DevDaoStory

  一旦用户接受一个 POST 请求,它就会被发送到服务器以采集用户的详细信息

    $.ajax({

  type: "POST",

  url: "/web3_login",

  dataType: "json",

  data: login_info_string,

  contentType: "application/json",

  success: function(data) {

  console.log("login finished")

  console.log(data)

  ...

  },

  error: function(xhr, textStatus, thrownError, data) {

  alert("Error: " + thrownError);

  $("body").css("opacity", "1");

  $("#load_spinner").toggle();

  }

  })

  可以利用web3 python 模块验证该消息。

  from web3 import Web3

  from eth_account.messages import encode_defunct

  def verify_signature(address, signature, message, w3):

  """

  Purpose:

  Verify user signed the message

  Args:

  address - address of user

  signature - the signature from user

  message - message to check

  Returns:

  boolean - True if verify, false if not

  """

  encoded_message = encode_defunct(text=message)

  pub_key = w3.eth.account.recover_message(encoded_message, signature=signature)

  logging.info(pub_key)

  # make sure same case

  if w3.toChecksumAddress(pub_key.lower()) == w3.toChecksumAddress(address.lower()):

  return True

  else:

  return False

  ...

  @application.route("/web3_login", methods=["POST"])

<p>

  def web3_login():

  """

  Purpose:

  login

  Args:

  N/A

  Returns:

  login object

  """

  jsonResp = {}

  data = request.data

  try:

  login_info = json.loads(data.decode("utf-8"))

  logging.info(login_info)

  address = w3.toChecksumAddress(str(login_info["address"]).lower())

  message = str(login_info["message"])

  signature = str(login_info["signature"])

  valid = web3_utils.verify_signature(address, signature, message, w3)</p>

  有关设置 python web3 环境的更多信息,请查看文档

  开放式 API

  验证消息后,我们现在可以使用 OpenSea API 为用户获取 Devs。

    def get_opensea_assets(userAddress: str, contract: str):

  """

  Purpose:

  Get assets from opensea

  Args:s

  userAddress: user to get

  contract: contract to get

  Returns:

  json_obj - Opensea assets

  """

  API_KEY = os.environ["OPENSEA_API"]

  HEADERS = {"x-api-key": API_KEY, "Accept": "application/json"}

  url = "https://api.opensea.io/api/v1/assets"

  querystring = {

  "owner": userAddress,

  "order_direction": "desc",

  "offset": "0",

  "limit": "20",

  "asset_contract_address": contract,

  }

  json_obj = requests.get(url, params=querystring, headers=HEADERS).json()

  return json_obj["assets"]

  assets = web3_utils.get_opensea_assets(address, DEVS_CONTRACT)

  API 调用将获取有关项目的所有信息,包括 tokenid。通过在 pixel-avatars 项目之上构建,我们现在可以获取图像以及定义您的 Dev 的数据,因此它可以在前端渲染。

  综上所述

  DevDaoStory 构建的手机版APP小说网站源码非常有趣,保证其他开发者可以轻松从开源源码中打开。

  最新版:优采云采集器下载官网

  优采云采集器是一个非常实用和强大的网页数据采集器,涵盖金融、交易、社交网站、电商产品等广泛的领域。网站数据可以正常采集向下并可以导出,软件界面非常简洁明了,使用方便快捷,让你繁琐复杂的工作变得简单有趣!

  功能说明

  简单采集

  简单的采集模式,内置数百个主流网站数据源,如京东、天猫、大众点评等流行的采集网站,只需参考模板只需简单设置参数,即可快速获取公共数据网站。

  智能采集

  优采云采集根据不同网站,提供多种网页采集策略及配套资源,可自定义配置、组合使用、自动处理。从而帮助整个采集流程实现数据的完整性和稳定性。

  

  云采集

  云采集支持5000多台云服务器,7*24小时不间断运行,可实现定时采集,无需人员值守,灵活贴合业务场景,助您提升采集效率,保证数据的及时性。

  API接口

  通过优采云 API,可以轻松获取优采云任务信息和采集获取的数据,灵活调度任务,如远程控制任务启动和停止,高效实现数据采集 和归档 . 基于强大的API系统,还可以与公司内部的各种管理平台无缝对接,实现各种业务自动化。

  自定义采集

  根据不同用户的采集需求,优采云可以提供自定义模式自动生成爬虫,可以批量准确识别各种网页元素,以及翻页、下拉、ajax 、页面滚动、条件判断等多种功能,支持复杂的网站采集网页结构,满足多种采集应用场景。

  便捷的计时功能

  

  只需简单的点击几下设置,即可实现对采集任务的定时控制,无论是单个采集定时设置,还是预设日或周、月定时采集,您可以同时自由设置多个任务,根据需要进行选择时间的多种组合,灵活部署自己的采集任务。

  全自动数据格式化

  优采云内置强大的数据格式化引擎,支持字符串替换、正则表达式替换或匹配、去除空格、添加前缀或后缀、日期时间格式化、HTML转码等多项功能,采集全自动处理过程中,无需人工干预,即可获得所需的格式数据。

  多级采集

  很多主流新闻和电商网站s包括一级产品listing页面、二级产品详情页、三级评论详情页;无论网站有多少层级,优采云都可以拥有无​​限层级的采集数据,满足各种业务采集的需求。

  支持网站登录后采集

  优采云内置采集登录模块,只需要配置目标网站的账号密码,即可使用该模块采集登录数据; 同时,优采云还带有采集cookie自定义功能,首次登录后可以自动记住cookie,免去多次输入密码的繁琐,支持更多采集网站 的。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线