当前位置: 首页 > news >正文

出版社网站必须做企业可信认证嘛百度权重查询

出版社网站必须做企业可信认证嘛,百度权重查询,wordpress近期文章怎么显示时间,朝阳网站建设公司利用 OCR 和强大的 GPT-4o 迷你模型对收据进行信息提取 利用 OCR 和强大的 GPT-4o 迷你模型对收据进行信息提取 欢迎来到雲闪世界。#xff0c;我将向您展示如何从收据中提取信息#xff0c;并提供收据的简单图像。首先#xff0c;我们将利用 OCR 从收据中提取信息。然后我将向您展示如何从收据中提取信息并提供收据的简单图像。首先我们将利用 OCR 从收据中提取信息。然后此信息将发送到 GPT-4o 迷你模型进行信息提取。我在这个项目中的目标是开发一个应用程序只需拍摄收据图像并选择哪些物品属于哪个人它就可以帮助朋友分摊账单。本文将重点介绍此目标的信息提取部分。 动机 例如在去餐馆后查看收据并计算每个人的份额是一件麻烦事。我多次遇到过这个问题因此想要一个解决方案来使这个过程更有效。因此我想到了BillSplitter应用程序。这个想法是用户可以拍摄收据的图像应用程序将利用 OCR 和语言模型来处理收据并提取每个项目及其相应的价格用户可以简单地选择哪个人应该为哪个项目付款。最终用户会收到每个人欠款金额的概览。本文将介绍如何开发此应用程序的收据处理部分而前端部分将留待另一篇文章。这意味着本文将假设您有一张收据的图像目标是从收据中提取每个项目及其在列表中的相应价格。稍后可以开发一个前端应用程序来利用我们将在本文中开发的内容。 从收据中提取文本 首先可以使用 OCR 引擎提取收据中的文本。开源 OCR 引擎不计其数但本项目将使用EasyOCR因为它高效且易于使用。 首先您必须导入所需的包 import easyocr import cv2 import matplotlib.pyplot as plt import requests import torch import pytesseract from PIL import Image import json import numpy as np 您可以使用 pip 安装。请注意要在 GPU 上运行 EasyOCR强烈推荐因为它可以节省大量时间我必须使用以下命令在 GPU 上明确安装 PyTorchpip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 我在 Windows 和 CUDA 11.8 上使用了它但如果您使用其他操作系统或 CUDA 版本正确的命令在PyTorch 网站上。 然后我拍了一些收据的图片。您可以使用自己的收据但如果您不愿意也可以使用我在Google Drive上的收据这些收据来自挪威超市。我将包含收据图片的文件夹命名为ReceiptData并使用以下命令将图片路径加载到变量中 img_path1 ReceiptData/20231016_180324.jpgReceiptData/20231016_180324.jpg img_path2 ReceiptData/20231010_210904.jpg img_path3 ReceiptData/20231014_182753.jpg img_path4 ReceiptData/20230917_131726.jpg img_path5 ReceiptData/20231002_190427.jpg 我还喜欢为我正在使用的收据设置一个变量以便于阅读和轻松更改收据。 PATH_TO_USE img_path2 要加载 EasyOCR您可以使用下面的代码行。请注意如果您正在阅读不同语言的文本您可以将no更改为您想要的语言例如en表示英语。您可以在此网站上找到所有可用语言及其代码名称的列表。此外如果您不使用 GPU您可以设置 gpuFalse。 reader easyocr.Reader([no], gpuTrue) # this needs to run only once to load the model into memoryno], gpuTrue) # this needs to run only once to load the model into memory 然后我读取图像将其转换为灰度以提高 OCR 性能并运行 OCR。此外我还将 OCR 输出合并为一个字符串。 img cv2.imread(PATH_TO_USE) img cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) result reader.readtext(img, detail0)0)result_string for ele in result:result_string ele 如果您想查看收据您可以这样做 cv2.namedWindow(img, cv2.WINDOW_NORMAL)img, cv2.WINDOW_NORMAL) cv2.imshow(img, img) cv2.waitKey(0) cv2.destroyAllWindows() 恭喜您现在已经成功从收据中提取了文本。请注意某些 OCR 输出可能看起来像是无意义的例如一张收据的 OCR 输出开头看起来像Al rema 10 Salaskvittering REMA 1ooo GausdAL这自然不是最佳的。发生这种情况的原因有很多但主要原因是收据中的文本非常小这使得 OCR 难以辨认出所有字符。不过正如您将在本文后面看到的那样OCR 足够有效可以成功从收据中提取项目。但应该注意的是提高 OCR 质量应该是未来工作的重点。 使用 GPT-4o mini 提取信息 我花了很多时间尝试使用 Python 逻辑、正则表达式和类似方法从收据中提取信息。然而这些方法的问题在于它们难以处理 OCR 输出的各种输出。然而像 GPT-4o mini 这样的大型语言模型彻底改变了这一过程既能够处理不同的输入又能输出结构化的响应。这使得大型语言模型非常适合我们想要在这里实现的任务即从收据的 OCR 输出中提取商品和价格。在本文中我将使用 GPT-4o mini尽管在这种情况下也可以使用许多其他 LLM。 首先你应该登录或创建一个OpenAI帐户。这将为你提供访问 OpenAI API 所需的 API 密钥。你还必须输入付款方式来支付 API 请求。我建议尽快对你的账户设置消费限额因为人们很容易开始花很多钱。然而在收据数据上使用 GPT-4o mini 相当便宜你可以在OpenAI 的网站上全面了解定价。 然后您应该安全地存储 API。有几种方法可以做到这一点但我只需创建一个如下所示的 constants.py 文件 OPEN_AI_API_KEY 123123123123123123 然后您可以使用以下代码将密钥导入到单独的文件中 from constants import OPEN_AI_API_KEY OPEN_AI_API_KEY str(OPEN_AI_API_KEY) assert OPEN_AI_API_KEY.startswith(sk-) and OPEN_AI_API_KEY.endswith(123) client OpenAI(api_keyOPEN_AI_API_KEY) 请记住替换断言中的两个字符串以匹配您的 API 密钥。此断言语句可确保您使用的是正确的 API 密钥。 然后您可以创建一个 OpenAI 客户端来使用以下命令发出 API 请求 from openai import OpenAI import os client OpenAI(api_keyOPEN_AI_API_KEY) 您可以使用以下方式发送 API 请求 MODEL gpt-4o-minigpt-4o-minidef prompt_gpt(prompt):return client.chat.completions.create(modelMODEL,messages[{role: system, content: You are a helpful assistant.},{role: user, content: prompt}]).choices[0].message.content 然后我使用下面的代码创建一个提示。很难找到一个有效的提示在处理这个问题时我特别纠结于 GPT-4o mini 提供的过长的答案。为了解决这个问题我添加了两个句子只用列表来回答没有其他内容当然这是物品和价格的清单。最后一部分很有趣因为我在提示本身中包含了响应的开头我读到这可以帮助避免 LLM 过长的解释而在这种情况下这是不希望的。 prompt fGiven a string of text from an OCR of a receipt. Find each item and price in the receipt, and return with a list of tuples like this: [(item1, price1), (item2, price2), ...]. Only respond with the list, and nothing else. The string is: {result_string}Given a string of text from an OCR of a receipt. Find each item and price in the receipt, and return with a list of tuples like this: [(item1, price1), (item2, price2), ...]. Only respond with the list, and nothing else. The string is: {result_string} prompt . Sure, here is the list of items and prices: 然后你可以使用以下命令提示 GPT-4o mini response prompt_gpt(prompt) 以下是我收到的一些回复示例 # for image ReceiptData/20231010_210904.jpg [(KylLING HotwiNGS, 57,00), (Iskaffe Hocca, 18,90), (TORTILLACHIP ZINGY, 16,90), (SøTPOTeT FRIES, 37,00), (Creamy PEANøTTSHeR, 46,00), (GluTEn FReE TORT, 43,90), (DIP TEX MEX STyLE, 40,90)]# for image ReceiptData/20231016_180324.jpg [(RISTO HOZZA _ 2PK, 89.90), (SUPERHEL T , GROYBRøP, 35.00), (B#REPOSE, 25.00), (Dr Oetker, 26.97)]# for image ReceiptData/20231002_190427.jpg [(TøRKEDE APRIKOSER, 29.90), (MANDLER, 10.90), (Couscous, 22.40), (FISKEBURGER HYS8TO, 53.90), (AVOCADO 2PK, 40.00), (GRøNNKÅL, 0.00), (BROKKOLI, 0.00), (GULROT BEGER 75OGR, 3.00)] 审查结果 设置好所有代码以从收据中提取信息后是时候检查一下该方法的效果了。我将使用定性方法逐一查看一些收据以判断信息提取的效果。我将检查上面显示的 3 张输出图像。 第一张收据 对于这张收据您可以看到信息提取管道能够使用正确的流程提取所有项目。我认为这非常令人印象深刻因为图像不是非常清晰并且图像中有很多不属于收据的背景。不幸的是物品名称中有一些拼写错误但我认为在这种情况下这是可以接受的因为您仍然可以轻松了解它是什么物品。 第二张收据 在这张收据上信息提取管道遇到了困难。前两个商品和价格是正确的但模型给出了bærepose的错误价格发生这种情况是因为 OCR 无法为商品选择正确的价格这让 LLM 感到困惑。收据商品部分的最后一行是第一件商品的折扣LLM 无法理解并错误地输出这是一件单独的商品。我认为这是可以接受的但是因为模型很难理解最后一行是另一件商品的折扣而不是商品本身。 第三张收据 对于这张收据的前四项管道表现非常好但不幸的是对于剩下的四项管道却失败了。考虑到图像更清晰背景噪音更少这张收据应该比前两张收据更容易但不幸的是实际情况并非如此。我查看了这张收据的 OCR 输出以了解错误来自何处。前四项的输出清晰正确而模型突然对后四项失败这表明不正确的 OCR 输出可能会给 GPT-4o mini 带来严重问题。 了解如何改进管道 为了改进管道我们必须了解它的弱点。如前所述问题似乎出在 OCR 上。为了进一步研究这个问题我们将更深入地研究 OCR 输出。EasyOCR 中的 OCR 包含两个步骤。第一步称为文本检测它检测图像中存在文本的区域。这是通过使用边界框标记带有文本的区域来完成的。第二步称为文本识别给定一个包含文本的边界框它将输出边界框中存在的文本。因此本文中实现的信息提取管道的问题可能出在两个步骤之一上。 首先我们研究文本识别通过打印出 OCR 找到的边界框来实现。您可以使用以下代码执行此操作。首先运行 OCR 并让函数也返回边界框通过设置 detail1 而不是像我们之前所做的那样设置 detail0 来实现 result2 reader.readtext(img, detail1)1) 然后您可以使用以下命令打印出图像的边界框 # Loop through the results and draw bounding boxes on the original image for (bbox, text, prob) in result2:top_left tuple(bbox[0])bottom_right tuple(bbox[2])# Draw the bounding box on the original imagecv2.rectangle(img, top_left, bottom_right, (0, 255, 0), 2) # Green box with thickness 2# Optionally, put the recognized text on the original imagecv2.putText(img, text, (top_left[0], top_left[1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2)# Now resize the image to a smaller sizescale_percent 20 # percent of original size width int(img.shape[1] * scale_percent / 100) height int(img.shape[0] * scale_percent / 100) dim (width, height)# Resize the image resized_img cv2.resize(img, dim, interpolationcv2.INTER_AREA)# Save or display the resized image with bounding boxes cv2.imwrite(output_image_with_boxes.jpg, resized_img) cv2.imshow(Resized Image with Bounding Boxes, resized_img) cv2.waitKey(0) cv2.destroyAllWindows() 对于第三张收据返回了下面的收据。您可以看到模型很难读取最后四件商品的价格。这导致文本识别步骤表现不佳进而导致 GPT-4o mini 难以对收据上的商品和价格做出准确的响应。 添加图片注释不超过 140 字可选 如果对第二张收据重复上述步骤就会发现同样的问题。 解决这个问题主要有两种方法。第一步是拍摄更清晰的收据照片使 OCR 更容易读取文本。但是我认为第三张收据的图像非常清晰OCR 应该能够读取它。另一种主要方法是改进 OCR要么使用不同的 OCR 引擎例如PaddleOCR、Tesseract或付费 OCR 服务如AWS Textract要么通过微调 OCR正如我在关于微调 EasyOCR 的文本识别部分的文章中展示的那样。请注意在从事这个项目时我尝试了 PaddleOCR 和 Tesseract它们的表现都比 EasyOCR 差。 最后我还测试了 Amazon Textract 选项以查看其有效性。以下是第二张收据的结果您可以看到 Amazon Textract 基本上完美地定位了所有文本使其成为从收据中提取文本的非常有效的选项。在下一节中我将在管道中实施 AWS Textract以查看应用程序的运行情况。 添加图片注释不超过 140 字可选 使用 Textract 测试改进的解决方案 为了了解从收据中提取信息的效果如何我将使用 AWS Textract 而不是 EasyOCR 进行 OCR。通常我更愿意在本地使用 OCR因为这样我可以更好地控制流程而且使用 AI 的乐趣之一就是自己处理模型而不仅仅是调用 API。但是我想看看付费 OCR API 服务在这种情况下的效果如何。使用 AWS Textract 需要设置一个 AWS 账户以便拥有访问密钥来调用 Textract API。请注意AWS 的初始设置可能有点繁琐主要是出于安全原因但我向您保证正确设置它非常值得您花时间。这是因为您将学习如何设置 AWS一种流行的云提供商并确保密钥的安全这是一项需要维护的重要做法特别是如果您开发的应用程序有很多用户。我不会在这里提供有关设置帐户的教程但 AWS 已经为这个过程编写了一些高质量的文档并且那里还有大量关于该主题的其他文章。 Textract 服务也相当便宜撰写本文时的价格为每月前 100 万页 1.5 美元/1000 页每月超过 100 万页 0.6 美元/1000 页。如果您使用检测文档文本 API您还可以通过 AWS 免费套餐每月获得 1000 页免费页面。 设置访问凭据后您可以使用以下代码使用 Textract API。首先导入一些内容。请注意我将凭据存储在名为 constants.py 的单独文件中。 import boto3 from io import BytesIO from constants import AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION import os 然后您必须创建一个客户端来调用 API。 def get_aws_textract_client():return boto3.client(textract,aws_access_key_idAWS_ACCESS_KEY_ID,aws_secret_access_keyAWS_SECRET_ACCESS_KEY,region_nameAWS_REGION) 然后我使用以下函数来调用 API。 def get_textract_text_from_image(client, image_path):assert os.path.exists(image_path), fImage file not found: {image_path}with open(image_path, rb) as document:img bytearray(document.read())# Call Amazon Textractresponse client.detect_document_text(Document{Bytes: img})return responsedef extract_text_from_response(response):result_string for block in response[Blocks]:if block[BlockType] WORD or block[BlockType] LINE:result_string block[Text] return result_string 我使用以下几行调用这两个函数 response get_textract_text_from_image(client, PATH_TO_USE) result_string extract_text_from_response(response) 然后我对第三张收据运行此操作并使用提取的文本提示 GPT-4o mini结果如下 [(TORKEDE APRIKOSER, 29.90), (MANDLER, 10.90), (COUSCOUS, 22.40), (FISKEBURGER HYSTO, 53.90), (AVOCADO 2PK 320G, 34.90), (GRONNKAL 150G, 24.90), (BROKKOLI, 24.90), (GULROT BEGER 750GR, 24.90)]TORKEDE APRIKOSER, 29.90), (MANDLER, 10.90), (COUSCOUS, 22.40), (FISKEBURGER HYSTO, 53.90), (AVOCADO 2PK 320G, 34.90), (GRONNKAL 150G, 24.90), (BROKKOLI, 24.90), (GULROT BEGER 750GR, 24.90)] 如您所见AWS Textract 和 GPT-4o mini 可以从收据中提取所有价格正确的商品但最后一项商品的价格不正确。我也对第二张收据进行了尝试结果得到了以下响应 [(RISTO. MOZZA. 2PK 15%, 89.90), (SUPERHELT GROVBROD 15%, 35.00), (BAREPOSE 80% RESIR 25%, 4.25), (30% Dr. Oetker, -26.97)]RISTO. MOZZA. 2PK 15%, 89.90), (SUPERHELT GROVBROD 15%, 35.00), (BAREPOSE 80% RESIR 25%, 4.25), (30% Dr. Oetker, -26.97)] 在这种情况下AWS Textract 和 GPT-4o mini 可以完美地提取所有商品和价格。请注意GPT-4o mini 返回的最后一件商品的价格为负数我认为这是可以接受的应该在应用程序的前端处理。 结论 在本文中我向您展示了如何开发信息提取管道以从收据中检索商品和价格。我们首先实施 EasyOCR 从收据中提取文本然后使用 GPT-4o mini 根据 OCR 输出提供商品和价格。然后我们检查了三张单独收据的结果。检查显示管道对某些商品表现良好提取了正确的商品和价格尽管商品名称有一些拼写错误。但是管道对其他商品完全失败这主要归因于 OCR 错误。除了 EasyOCR我还测试了 Tesseract OCR 和 PaddleOCR它们并没有为本文中的三张收据提供更好的结果。AWS Textract 被设置为处理 OCR 错误它提供的结果比 EasyOCR、Tesseract 和 PaddleOCR 好得多。使用 AWS Textract 和 GPT-4o mini 的组合我们能够非常准确地从收据中导出商品和价格。 感谢关注雲闪世界。Aws解决方案架构师vs开发人员GCP解决方案架构师vs开发人员
文章转载自:
http://www.morning.kskpx.cn.gov.cn.kskpx.cn
http://www.morning.bctr.cn.gov.cn.bctr.cn
http://www.morning.wkhfg.cn.gov.cn.wkhfg.cn
http://www.morning.fzlk.cn.gov.cn.fzlk.cn
http://www.morning.pluimers.cn.gov.cn.pluimers.cn
http://www.morning.dfdhx.cn.gov.cn.dfdhx.cn
http://www.morning.jtmql.cn.gov.cn.jtmql.cn
http://www.morning.sxmbk.cn.gov.cn.sxmbk.cn
http://www.morning.prls.cn.gov.cn.prls.cn
http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn
http://www.morning.sfyqs.cn.gov.cn.sfyqs.cn
http://www.morning.jbxd.cn.gov.cn.jbxd.cn
http://www.morning.mjgxl.cn.gov.cn.mjgxl.cn
http://www.morning.sfqtf.cn.gov.cn.sfqtf.cn
http://www.morning.nqbkb.cn.gov.cn.nqbkb.cn
http://www.morning.flfdm.cn.gov.cn.flfdm.cn
http://www.morning.srcth.cn.gov.cn.srcth.cn
http://www.morning.yrnll.cn.gov.cn.yrnll.cn
http://www.morning.gwxwl.cn.gov.cn.gwxwl.cn
http://www.morning.pzqnj.cn.gov.cn.pzqnj.cn
http://www.morning.tsynj.cn.gov.cn.tsynj.cn
http://www.morning.mcjrf.cn.gov.cn.mcjrf.cn
http://www.morning.mlntx.cn.gov.cn.mlntx.cn
http://www.morning.yrngx.cn.gov.cn.yrngx.cn
http://www.morning.mztyh.cn.gov.cn.mztyh.cn
http://www.morning.qgxnw.cn.gov.cn.qgxnw.cn
http://www.morning.cnfjs.cn.gov.cn.cnfjs.cn
http://www.morning.nqyzg.cn.gov.cn.nqyzg.cn
http://www.morning.mxhgy.cn.gov.cn.mxhgy.cn
http://www.morning.sjqml.cn.gov.cn.sjqml.cn
http://www.morning.xqnzn.cn.gov.cn.xqnzn.cn
http://www.morning.pfcrq.cn.gov.cn.pfcrq.cn
http://www.morning.jllnh.cn.gov.cn.jllnh.cn
http://www.morning.rpdmj.cn.gov.cn.rpdmj.cn
http://www.morning.qnxzx.cn.gov.cn.qnxzx.cn
http://www.morning.bwdnx.cn.gov.cn.bwdnx.cn
http://www.morning.xqgtd.cn.gov.cn.xqgtd.cn
http://www.morning.kydrb.cn.gov.cn.kydrb.cn
http://www.morning.jnvivi.com.gov.cn.jnvivi.com
http://www.morning.pmdzd.cn.gov.cn.pmdzd.cn
http://www.morning.jnptt.cn.gov.cn.jnptt.cn
http://www.morning.wdhlc.cn.gov.cn.wdhlc.cn
http://www.morning.mhcft.cn.gov.cn.mhcft.cn
http://www.morning.fkmrj.cn.gov.cn.fkmrj.cn
http://www.morning.zdnrb.cn.gov.cn.zdnrb.cn
http://www.morning.mnbcj.cn.gov.cn.mnbcj.cn
http://www.morning.gtjkh.cn.gov.cn.gtjkh.cn
http://www.morning.grjh.cn.gov.cn.grjh.cn
http://www.morning.gblrn.cn.gov.cn.gblrn.cn
http://www.morning.syrzl.cn.gov.cn.syrzl.cn
http://www.morning.zkqsc.cn.gov.cn.zkqsc.cn
http://www.morning.dztp.cn.gov.cn.dztp.cn
http://www.morning.jsljr.cn.gov.cn.jsljr.cn
http://www.morning.plznfnh.cn.gov.cn.plznfnh.cn
http://www.morning.rbbzn.cn.gov.cn.rbbzn.cn
http://www.morning.ssfq.cn.gov.cn.ssfq.cn
http://www.morning.xgkxy.cn.gov.cn.xgkxy.cn
http://www.morning.gcbhh.cn.gov.cn.gcbhh.cn
http://www.morning.prfrb.cn.gov.cn.prfrb.cn
http://www.morning.cnqff.cn.gov.cn.cnqff.cn
http://www.morning.npqps.cn.gov.cn.npqps.cn
http://www.morning.mrxqd.cn.gov.cn.mrxqd.cn
http://www.morning.nwfpl.cn.gov.cn.nwfpl.cn
http://www.morning.gwmjy.cn.gov.cn.gwmjy.cn
http://www.morning.qfcnp.cn.gov.cn.qfcnp.cn
http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn
http://www.morning.nzcgj.cn.gov.cn.nzcgj.cn
http://www.morning.rymb.cn.gov.cn.rymb.cn
http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn
http://www.morning.qhkx.cn.gov.cn.qhkx.cn
http://www.morning.sggzr.cn.gov.cn.sggzr.cn
http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn
http://www.morning.mpszk.cn.gov.cn.mpszk.cn
http://www.morning.deupp.com.gov.cn.deupp.com
http://www.morning.xflwq.cn.gov.cn.xflwq.cn
http://www.morning.rcklc.cn.gov.cn.rcklc.cn
http://www.morning.skscy.cn.gov.cn.skscy.cn
http://www.morning.smxyw.cn.gov.cn.smxyw.cn
http://www.morning.mhmcr.cn.gov.cn.mhmcr.cn
http://www.morning.lwmzp.cn.gov.cn.lwmzp.cn
http://www.tj-hxxt.cn/news/258957.html

相关文章:

  • 电子商务网站系统规划 案例分析h5页面制作软件下载
  • 网站后台登陆验证码建设工程材料网站
  • 轻松筹 做的网站价格如何去除wordpress首页功能
  • 什么网站做一手项目好义乌联合外发加工网
  • 导购网站怎么建设新手做视频网站
  • 如何进入正能量奖励网站如何做好品牌网站建设方案
  • linux下wordpress建站php网站接口开发
  • 有做面食的网站吗建设网站需要多少时间
  • 硅谷电视剧他们做的是网站还是软件中国最厉害的互联网公司
  • 新手学做网站 iso ed2k百度竞价推广怎么做
  • 被禁止访问网站怎么办医院可以做网站吗
  • 鲜花网站建设策划方案书二手交易网站开发方式
  • 做网站主要来源天河网站建设外包
  • 泉州企业网站制作定制wordpress登陆按钮
  • 微盟商户助手app下载seo如何分析一个网站
  • 口碑好的网站建设山东省住房和城乡建设网站
  • 网站建设修饰商品网页版传奇176
  • 深圳做网站比较好天涯网站建设考核
  • 哪个网站做外贸的多复旦学霸张立勇做的有关寺庙网站
  • 色和尙做爰网站如何让百度收录我的网站
  • 石家庄站列车时刻表衡水网站设计公司哪家好
  • 菏泽网站备案拍照包装公司网站模板
  • 海口网站建设方案推广网站建设综合
  • 网站 数据备份微信开发网站建设
  • 长沙关键词优化服务网站优化文档
  • 上海网站建设公司推荐企业网站可以备案几个
  • 网站防红怎么做的文库网站开发建设
  • 网页空间申请浙江关键词优化
  • 体育网站模版济南新闻头条最新事件
  • 网站建设实习生怎么样网页设计制作注册界面实验报告