超碰91资源站-超碰97豆花-超碰97人妻-超碰97人人干-超碰97人人香蕉-超碰97天天操-超碰97在线资源站-超碰97资源站共享-超碰97资源站总站-超碰aa在线91-超碰av操-超碰爱爱

半岛外围网上直营

Word處理控件Aspose.Words功能演示:用Java從Word文檔中提取文本

翻譯|使用教程|編輯:胡濤|2022-08-29 10:51:06.847|閱讀 358 次

概述:本文介紹了如何用Java從Word文檔中提取文本,歡迎查閱!

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

相關鏈接:

Aspose.Words For .NET是一種高級Word文檔處理API,用于執行各種文檔管理和操作任務。API支持生成,修改,轉換,呈現和打印文檔,而無需在跨平臺應用程序中直接使用Microsoft Word。此外,API支持所有流行的Word處理文件格式,并允許將Word文檔導出或轉換為固定布局文件格式和最常用的圖像/多媒體格式。本文介紹了如何用Java從Word文檔中提取文本

從 Word 文檔中提取文本通常在不同的場景中執行。例如,分析文本,提取文檔的特定部分并將它們組合成單個文檔,等等。在本文中,您將學習如何在 Java 中以編程方式從 Word 文檔中提取文本。此外,我們將介紹如何動態提取段落、表格等特定元素之間的內容。

Aspose.Words 最新下載

獲取從 Word 文檔中提取文本的 Java 庫

Aspose.Words for Java 是一個功能強大的庫,可讓您從頭開始創建 MS Word 文檔。此外,它可以讓您操作現有的 Word 文檔進行加密、轉換、文本提取等。我們將使用這個庫從 Word DOCX 或 DOC 文檔中提取文本。您可以下載API 的 JAR 或使用以下 Maven 配置安裝它。

<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>//repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>22.6</version>
<type>pom</type>
</dependency>
在Java 中提取 Word DOC/DOCX 中的文本

MS Word 文檔由各種元素組成,包括段落、表格、圖像等。因此,文本提取的要求可能因場景而異。例如,您可能需要在段落、書簽、評論等之間提取文本。

Word DOC/DOCX 中的每種元素都表示為一個節點。因此,要處理文檔,您將不得不使用節點。那么讓我們開始看看如何在不同的場景下從 Word 文檔中提取文本。

在 Java 中提取 Word DOC 中的文本

在本節中,我們將為 Word 文檔實現一個 Java 文本提取器,文本提取的工作流程如下:

  • 首先,我們將定義要包含在文本提取過程中的節點。
  • 然后,我們將提取指定節點之間的內容(包括或不包括開始和結束節點)。
  • 最后,我們將使用提取節點的克隆,例如創建一個包含提取內容的新 Word 文檔。

現在讓我們編寫一個名為extractContent的方法,我們將向該方法傳遞節點和一些其他參數來執行文本提取。此方法將解析文檔并克隆節點。以下是我們將傳遞給此方法的參數。

  1. startNodeendNode 分別作為內容提取的起點和終點。這些可以是塊級(ParagraphTable)或內聯級(例如RunFieldStartBookmarkStart等)節點。
    1. 要傳遞一個字段,您應該傳遞相應的FieldStart對象。
    2. 要傳遞書簽,應傳遞BookmarkStartBookmarkEnd節點。
    3. 對于評論,應使用CommentRangeStartCommentRangeEnd節點。
  2. isInclusive定義標記是否包含在提取中。如果此選項設置為 false 并且傳遞相同的節點或連續節點,則將返回一個空列表。

以下是提取傳遞的節點之間的內容的extractContent方法的完整實現。

// For complete examples and data files, please go to //github.com/aspose-words/Aspose.Words-for-Java
public static ArrayList extractContent(Node startNode, Node endNode, boolean isInclusive) throws Exception {
// First check that the nodes passed to this method are valid for use.
verifyParameterNodes(startNode, endNode);

// Create a list to store the extracted nodes.
ArrayList nodes = new ArrayList();

// Keep a record of the original nodes passed to this method so we can split marker nodes if needed.
Node originalStartNode = startNode;
Node originalEndNode = endNode;

// Extract content based on block level nodes (paragraphs and tables). Traverse through parent nodes to find them.
// We will split the content of first and last nodes depending if the marker nodes are inline
while (startNode.getParentNode().getNodeType() != NodeType.BODY)
startNode = startNode.getParentNode();

while (endNode.getParentNode().getNodeType() != NodeType.BODY)
endNode = endNode.getParentNode();

boolean isExtracting = true;
boolean isStartingNode = true;
boolean isEndingNode;
// The current node we are extracting from the document.
Node currNode = startNode;

// Begin extracting content. Process all block level nodes and specifically split the first and last nodes when needed so paragraph formatting is retained.
// Method is little more complex than a regular extractor as we need to factor in extracting using inline nodes, fields, bookmarks etc as to make it really useful.
while (isExtracting) {
// Clone the current node and its children to obtain a copy.
/*System.out.println(currNode.getNodeType());
if(currNode.getNodeType() == NodeType.EDITABLE_RANGE_START
|| currNode.getNodeType() == NodeType.EDITABLE_RANGE_END)
{
currNode = currNode.nextPreOrder(currNode.getDocument());
}*/
System.out.println(currNode);
System.out.println(endNode);

CompositeNode cloneNode = null;
///cloneNode = (CompositeNode) currNode.deepClone(true);

Node inlineNode = null;
if(currNode.isComposite())
{
cloneNode = (CompositeNode) currNode.deepClone(true);
}
else
{
if(currNode.getNodeType() == NodeType.BOOKMARK_END)
{
Paragraph paragraph = new Paragraph(currNode.getDocument());
paragraph.getChildNodes().add(currNode.deepClone(true));
cloneNode = (CompositeNode)paragraph.deepClone(true);
}
}

isEndingNode = currNode.equals(endNode);

if (isStartingNode || isEndingNode) {
// We need to process each marker separately so pass it off to a separate method instead.
if (isStartingNode) {
processMarker(cloneNode, nodes, originalStartNode, isInclusive, isStartingNode, isEndingNode);
isStartingNode = false;
}

// Conditional needs to be separate as the block level start and end markers maybe the same node.
if (isEndingNode) {
processMarker(cloneNode, nodes, originalEndNode, isInclusive, isStartingNode, isEndingNode);
isExtracting = false;
}
} else
// Node is not a start or end marker, simply add the copy to the list.
nodes.add(cloneNode);

// Move to the next node and extract it. If next node is null that means the rest of the content is found in a different section.
if (currNode.getNextSibling() == null && isExtracting) {
// Move to the next section.
Section nextSection = (Section) currNode.getAncestor(NodeType.SECTION).getNextSibling();
currNode = nextSection.getBody().getFirstChild();
} else {
// Move to the next node in the body.
currNode = currNode.getNextSibling();
}
}

// Return the nodes between the node markers.
return nodes;
}

extractContent方法還需要一些輔助方法來完成文本提取操作,如下所示。

/**
* Checks the input parameters are correct and can be used. Throws an exception
* if there is any problem.
*/
private static void verifyParameterNodes(Node startNode, Node endNode) throws Exception {
// The order in which these checks are done is important.
if (startNode == null)
throw new IllegalArgumentException("Start node cannot be null");
if (endNode == null)
throw new IllegalArgumentException("End node cannot be null");

if (!startNode.getDocument().equals(endNode.getDocument()))
throw new IllegalArgumentException("Start node and end node must belong to the same document");

if (startNode.getAncestor(NodeType.BODY) == null || endNode.getAncestor(NodeType.BODY) == null)
throw new IllegalArgumentException("Start node and end node must be a child or descendant of a body");

// Check the end node is after the start node in the DOM tree
// First check if they are in different sections, then if they're not check
// their position in the body of the same section they are in.
Section startSection = (Section) startNode.getAncestor(NodeType.SECTION);
Section endSection = (Section) endNode.getAncestor(NodeType.SECTION);

int startIndex = startSection.getParentNode().indexOf(startSection);
int endIndex = endSection.getParentNode().indexOf(endSection);

if (startIndex == endIndex) {
if (startSection.getBody().indexOf(startNode) > endSection.getBody().indexOf(endNode))
throw new IllegalArgumentException("The end node must be after the start node in the body");
} else if (startIndex > endIndex)
throw new IllegalArgumentException("The section of end node must be after the section start node");
}

/**
* Checks if a node passed is an inline node.
*/
private static boolean isInline(Node node) throws Exception {
// Test if the node is desendant of a Paragraph or Table node and also is not a
// paragraph or a table a paragraph inside a comment class which is decesant of
// a pararaph is possible.
return ((node.getAncestor(NodeType.PARAGRAPH) != null || node.getAncestor(NodeType.TABLE) != null)
&& !(node.getNodeType() == NodeType.PARAGRAPH || node.getNodeType() == NodeType.TABLE));
}

/**
* Removes the content before or after the marker in the cloned node depending
* on the type of marker.
*/
private static void processMarker(CompositeNode cloneNode, ArrayList nodes, Node node, boolean isInclusive,
boolean isStartMarker, boolean isEndMarker) throws Exception {
// If we are dealing with a block level node just see if it should be included
// and add it to the list.
if (!isInline(node)) {
// Don't add the node twice if the markers are the same node
if (!(isStartMarker && isEndMarker)) {
if (isInclusive)
nodes.add(cloneNode);
}
return;
}

// If a marker is a FieldStart node check if it's to be included or not.
// We assume for simplicity that the FieldStart and FieldEnd appear in the same
// paragraph.
if (node.getNodeType() == NodeType.FIELD_START) {
// If the marker is a start node and is not be included then skip to the end of
// the field.
// If the marker is an end node and it is to be included then move to the end
// field so the field will not be removed.
if ((isStartMarker && !isInclusive) || (!isStartMarker && isInclusive)) {
while (node.getNextSibling() != null && node.getNodeType() != NodeType.FIELD_END)
node = node.getNextSibling();

}
}

// If either marker is part of a comment then to include the comment itself we
// need to move the pointer forward to the Comment
// node found after the CommentRangeEnd node.
if (node.getNodeType() == NodeType.COMMENT_RANGE_END) {
while (node.getNextSibling() != null && node.getNodeType() != NodeType.COMMENT)
node = node.getNextSibling();

}

// Find the corresponding node in our cloned node by index and return it.
// If the start and end node are the same some child nodes might already have
// been removed. Subtract the
// difference to get the right index.
int indexDiff = node.getParentNode().getChildNodes().getCount() - cloneNode.getChildNodes().getCount();

// Child node count identical.
if (indexDiff == 0)
node = cloneNode.getChildNodes().get(node.getParentNode().indexOf(node));
else
node = cloneNode.getChildNodes().get(node.getParentNode().indexOf(node) - indexDiff);

// Remove the nodes up to/from the marker.
boolean isSkip;
boolean isProcessing = true;
boolean isRemoving = isStartMarker;
Node nextNode = cloneNode.getFirstChild();

while (isProcessing && nextNode != null) {
Node currentNode = nextNode;
isSkip = false;

if (currentNode.equals(node)) {
if (isStartMarker) {
isProcessing = false;
if (isInclusive)
isRemoving = false;
} else {
isRemoving = true;
if (isInclusive)
isSkip = true;
}
}

nextNode = nextNode.getNextSibling();
if (isRemoving && !isSkip)
currentNode.remove();
}

// After processing the composite node may become empty. If it has don't include
// it.
if (!(isStartMarker && isEndMarker)) {
if (cloneNode.hasChildNodes())
nodes.add(cloneNode);
}
}

public static Document generateDocument(Document srcDoc, ArrayList nodes) throws Exception {

// Create a blank document.
Document dstDoc = new Document();
// Remove the first paragraph from the empty document.
dstDoc.getFirstSection().getBody().removeAllChildren();

// Import each node from the list into the new document. Keep the original
// formatting of the node.
NodeImporter importer = new NodeImporter(srcDoc, dstDoc, ImportFormatMode.KEEP_SOURCE_FORMATTING);

for (Node node : (Iterable<Node>) nodes) {
Node importNode = importer.importNode(node, true);
dstDoc.getFirstSection().getBody().appendChild(importNode);
}

// Return the generated document.
return dstDoc;
}

現在我們準備好使用這些方法并從 Word 文檔中提取文本。

在Java 提取 Word DOC 中段落之間的文本

讓我們看看如何在 Word DOCX 文檔的兩個段落之間提取內容。以下是在 Java 中執行此操作的步驟。

  • 首先,使用Document類加載 Word 文檔。
  • 使用Document.getFirstSection().getChild(NodeType.PARAGRAPH, int, bool)方法將開始和結束段落的引用獲取到兩個對象中。
  • 調用extractContent(startPara, endPara, true)方法將節點提取到對象中。
  • 調用generateDocument(Document, extractNodes)輔助方法來創建包含提取內容的文檔。
  • 最后,使用Document.save(String)方法保存返回的文檔。

以下代碼示例展示了如何在 Java 的 Word DOCX 中提取第 7 段和第 11 段之間的文本。

// Load document
Document doc = new Document("TestFile.doc");

// Gather the nodes. The GetChild method uses 0-based index
Paragraph startPara = (Paragraph) doc.getFirstSection().getChild(NodeType.PARAGRAPH, 6, true);
Paragraph endPara = (Paragraph) doc.getFirstSection().getChild(NodeType.PARAGRAPH, 10, true);
// Extract the content between these nodes in the document. Include these
// markers in the extraction.
ArrayList extractedNodes = extractContent(startPara, endPara, true);

// Insert the content into a new separate document and save it to disk.
Document dstDoc = generateDocument(doc, extractedNodes);
dstDoc.save("output.doc");
在Java 中提取 DOC 中文本 - 在不同類型的節點之間

您還可以在不同類型的節點之間提取內容。為了演示,讓我們提取段落和表格之間的內容并將其保存到新的 Word 文檔中。以下是在 Java 中提取 Word 文檔中不同節點之間的文本的步驟。

  • 使用Document類加載 Word 文檔。
  • 使用Document.getFirstSection().getChild(NodeType, int, bool)方法將起始節點和結束節點引用到兩個對象中。
  • 調用extractContent(startPara, endPara, true)方法將節點提取到對象中。
  • 調用generateDocument(Document, extractNodes)輔助方法來創建包含提取內容的文檔。
  • 使用Document.save(String)方法保存返回的文檔。

以下代碼示例展示了如何使用 Java 在 DOCX 中提取段落和表格之間的文本。


// Load documents
Document doc = new Document("TestFile.doc");

// Get reference of starting paragraph
Paragraph startPara = (Paragraph) doc.getLastSection().getChild(NodeType.PARAGRAPH, 2, true);
Table endTable = (Table) doc.getLastSection().getChild(NodeType.TABLE, 0, true);

// Extract the content between these nodes in the document. Include these markers in the extraction.
ArrayList extractedNodes = extractContent(startPara, endTable, true);

// Lets reverse the array to make inserting the content back into the document easier.
Collections.reverse(extractedNodes);

while (extractedNodes.size() > 0) {
// Insert the last node from the reversed list
endTable.getParentNode().insertAfter((Node) extractedNodes.get(0), endTable);
// Remove this node from the list after insertion.
extractedNodes.remove(0);
}

// Save the generated document to disk.
doc.save("output.doc");


在Java 中提取 DOCX 中文本 - 基于樣式的段落之間

現在讓我們看看如何根據樣式提取段落之間的內容。為了演示,我們將提取 Word 文檔中第一個“標題 1”和第一個“標題 3”之間的內容。以下步驟演示了如何在 Java 中實現此目的。

  • 首先,使用Document類加載 Word 文檔。
  • 然后,使用paragraphsByStyleName(Document, “Heading 1”)輔助方法將段落提取到一個對象中。
  • 使用paragraphsByStyleName(Document, “Heading 3”)輔助方法將段落提取到另一個對象中。
  • 調用extractContent(startPara, endPara, true)方法并將兩個段落數組中的第一個元素作為第一個和第二個參數傳遞。
  • 調用generateDocument(Document, extractNodes)輔助方法來創建包含提取內容的文檔。
  • 最后,使用Document.save(String)方法保存返回的文檔。

以下代碼示例展示了如何根據樣式提取段落之間的內容。

// Load document
Document doc = new Document(dataDir + "TestFile.doc");

// Gather a list of the paragraphs using the respective heading styles.
ArrayList parasStyleHeading1 = paragraphsByStyleName(doc, "Heading 1");
ArrayList parasStyleHeading3 = paragraphsByStyleName(doc, "Heading 3");

// Use the first instance of the paragraphs with those styles.
Node startPara1 = (Node) parasStyleHeading1.get(0);
Node endPara1 = (Node) parasStyleHeading3.get(0);

// Extract the content between these nodes in the document. Don't include these markers in the extraction.
ArrayList extractedNodes = extractContent(startPara1, endPara1, false);

// Insert the content into a new separate document and save it to disk.
Document dstDoc = generateDocument(doc, extractedNodes);
dstDoc.save("output.doc");

以上便是如何用Java從Word文檔中提取文本 ,要是您還有其他關于產品方面的問題,歡迎咨詢我們,或者加入我們官方技術交流群。


歡迎下載|體驗更多Aspose產品

獲取更多信息請咨詢 或 加入Aspose技術交流群(761297826

標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
相關產品
控件
  • 產品功能:文檔管理
  • 源 碼:非開源
  • 產品編號:10564
  • 當前版本:v25.9 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: ASPOSE 正式授權
  • ">Aspose.Words for .NET

    無需Microsoft Word也可在任何平臺上滿足Word文檔的一切操作需求。

    控件
  • 產品功能:文檔管理
  • 源 碼:非開源
  • 產品編號:10565
  • 當前版本:v25.9 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: ASPOSE 正式授權
  • ">Aspose.PDF for .NET

    PDF文檔創建組件,無需Adobe Acrobat,也可以在任何平臺上操作PDF文檔。

    控件
  • 產品功能:文檔管理
  • 源 碼:非開源
  • 產品編號:10563
  • 當前版本:v25.8 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: ASPOSE 正式授權
  • ">Aspose.Cells for .NET

    專業的電子表格控件,無需MS Excel也可滿足一切Excel表格功能。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    利記足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網上PM娛樂城盤口(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規雷火競技官方買球(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權威十大網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 權威188BET足球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規188BET足球大全(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 国产爆乳肉感大码在线视频 | 国产精品码一区二区密挑 | 国产色视频一区二区三区 | 国产喷水吹潮视频在线播放 | 国产av高清无码自慰操射 | 国产午夜精品夜夜骚久久久久 | 国产精品女人呻吟在线观看 | 国产精品无码专区免费不卡 | 国产偷窥女洗浴在线观 | www.一区| 国产日韩欧美另类视频 | av在线播放一级二级三级 | 99精品国产色综合久久不卡 | 国产成人综合亚洲精品 | 国产口爆吞精右线视频 | 丰满的女房东 | 国产一区高清视频在线观看 | 国产精品中文字幕日韩精品 | 国产av一区二区三 | 国产av电影区二区三区曰曰 | 精品国产一区二区三区久久久蜜臀 | 国产v在线观看视频无码 | 国产美女一级性大黄片 | 国产美女视频黄a全免费网站樱花 | 韩国一区二区三区视频在线播 | 国产精品视频一区二区三区在线观看 | 国产成人久久精品二三区无码 | 国产一区二区乱码在线播放 | 国产色婷婷精品综合在线手机播放 | 国产精品爽爽v在线观看无码 | 国产在线91高清 | 国产成人无码a区在线观看导航 | 成人午夜精品视频在线观看 | 91精品国产三级a在线 | 国产欧美日韩综合视频专区 | 国产精品流白浆在线观 | 国产成人片无码免费视频软件 | 国产激情久久久久久老熟女影视 | 国产真实喝醉系列3 | 18禁裸乳无遮挡 | 国人精品视频在 | 18禁无遮拦无码国产在线播放 | 国产一区亚洲一区在线观看 | 91亚洲国产日韩欧美在线播放 | 91精品国产影片 | 国产精品一区二区三区免费观看 | 国产成a人亚洲精品无码樱花 | 国产午夜精品一区二区 | 国产激情一区二区三区四区 | 国产一级毛片久久久久久 | 国产爆乳无码视频在线观看3 | 国产无套乱子伦精彩是白视频 | 国产精品欧美一区久久 | av免费不卡国产观看 | 国产一区二区三区四区在线观看 | 国产丝袜一区 | 97午夜理论片影 | 成人午夜视频一区二区国语 | av中文无码乱人伦在线观看 | 成人激情综合 | 变态调教无码专区在线观看 | 2025nv天堂香蕉在线观看 | 国产精品成人大片 | 2025久久精品国产99国产精品 | 成人一区二区三区视频在线观看 | 精品一区二区三区高清免费观看 | 国产成人自拍一区 | 国产成人在线播放 | 国产成人啪午夜精品网站男同 | 国产成人免费观看在线视频 | 国产在线视频欧美亚综合 | 国产精品亚洲一区二区免费 | 91久久人妻中文字幕色欲 | av一区二区三区电影在线播放 | 99精品一级欧美片免费播放 | 国产亚洲欧美久久精品 | 国产999精品久久久久久 | 国产精品无码不卡一区二区三区 | av无码免费看| 91国内精品久久久久免费影院 | 国产女网红亚洲精品 | 国产福利95精品一区二区三区 | 成人黄色av播放 | 国产成人精品手机在线播放 | 国产片一区二区三区 | 国产成人av无码精品天堂 | aⅴ中文字| 国产成人人人爆出白浆 | 国产精品国产免费无码专区不卡 | 国产精品白丝jk白祙喷水视频 | 国产精品成人在线观看 | 国产午夜精品理论在线观看 | 91精品人妻一区二区三区蜜桃 | 国产亚洲日本一区二区三 | 成人综合国产一区二区三区 | 高清无码影视 | 东京热毛片无码dvd 东京热毛片无码dvd一二三区 | 国产精品青草综合久久久久99 | 91午夜国产在线观看 | 精品无码一区二区三区免费观看 | 国产系列在线频高清在线观看 | 国产精品色色视屏 | 国产精品免费观看一区 | 国产极品在线观看视频aaa | 99精品国产福利一区二区 | 丰满肥妇bb | 91精品国产aⅴ一区二区 | 国产在线精品99 | 福利国产精品 | 91精品国产福利在线观看 | 国产精品毛片在线完整sab | 国产av无码专区亚洲av桃花庵 | 国产尤物精品一区二区三区 | 国产精品一区第二页尤自在拍 | 国产免费一区二区三区香蕉精 | 国产麻豆精品久久一二三 | av中文字幕一区人妻 | 精品国产av无码一区二区三区 | 国产白丝内射 | 精品无码人妻夜 | 2025国产视频2区 | 国产一区二区三区成人欧美日韩在 | 国语字幕手机免费观看完整 | 国产精品美女av在线 | 国产精品日本不卡一区二区 | 国产美女精品a | 国产亚洲日韩欧美在线 | 国产精品亚洲日韩av | 丰满一个美女app视频免费软 | 国内精品乱码卡一卡2卡 | 国产成人精品一区二区秒播 | 国产三级精品久久 | 国产精品无码久久久久 | 国产欧美久久高清 | 国产精品va欧美精品v日韩 | 国产在线911福利免费 | 国产毛片三级在线 | 精品视频国产狼人视频 | 国产精品视频一区二区三区在线观看 | 国产精品无码无片在线观看3d | av无码免费永久在线观看 | 福利一区二区三区微拍视频 | 精品伦精品一区二区 | 国产高级桑拿在线播放 | 成人无码一区二区片 | 国产91高清免费 | 99久久久无码国产精品秋霞网 | 91久久精品日日躁夜夜躁欧美 | 国产成人无码一区二区在线观看 | 2025国产精品一卡2卡三卡 | 精品视频在线观看一区二区 | 精品人妻无码一区二区三区不 | 国产成久久免费精品av片天堂 | 国产免费无码一区二区 | 国产午夜福利在线不卡视频 | 高潮又爽又无遮挡又免费 | 99久久无码免费国产 | 成人免费毛片在线观看 | 国产成人精品第一区二区三区 | 精品国产一区二区三区在线不卡 | 国产av无码专区亚洲八aⅴ | 91露脸国产普通话对白k | 国产在线码观看超清无码视频 | 国产高清www免费视频 | 国产福利电影 | 精品人妻中文字幕无码 | 国产精品国产三级国av在线观看 | 精品久久久久久无码专区不卡 | 国产二三区国产一级淫片a 国产二三无码区 | 国产不卡av无遮挡在线观 | 丰满的熟妇岳中文字幕 | 91精品云霸高清中文字幕 | 国产午夜精品免费视频观看 | 91无码人妻一区二区三区在线看 | 福利影音国产在线观看 | 国产麻豆精品一区二区三区v视 | 国内福利写真片视频在线观看 | 国产最新午夜视频网站 | 国产另类图片 | 91久国产在线观看 | 国产经典三级av在线播放 | 国产v无码专区亚洲v手机麻豆 | 国产成人无码va在线观看 | 成人精品女人久久久 | 91国内精品久久久久怡红院 | 国产v亚洲v天堂 | 91久久精一区二区三区大全 | 国产女人高潮叫床视频大片 | 国产午夜福利短视频在线观看 | 精品国产一级二级三级在线 | 国产精品毛片无码 | 成人国产精品秘久久久 | 精品丝袜中文字幕乱码 | 国产日韩欧美精品另类 | 国产依人在线观看视频 | 99久久亚洲综合精品成人网 | 国产成人av综合色 | 国产精品成人无码视频 | 成人颜色视频网站免费在线观看 | 18禁黄污无遮挡无码网站 | 国产二区啪啪视频 | 精品国外一级毛片 | 国产日韩精品免费在线观看 | 国产女主播喷水视频在线观看 | 91精品福利视频一区 | 国产毛片日韩精品无码 | 精品日产一区二区三区 | av片无码久久尤物 | 成人在线观看完整版 | 国产成人综合亚洲欧洲色就色 | 国产成人久久精品二区三区小说 | 国产av国片精品jk制服无码 | 成人午夜啪啪免费网站 | 精品一区二区av天堂 | 精品久久久久久中文字幕无码vr | 成人无码精品一区二区在线 | 91久久久久国产一区二区 | 91视频一区 | 91精品国产免费久久久久久 | 国产精品va无码一区二区 | a级毛片免费无码 | 国产精品无码福利午夜专区 | 国产v亚洲v天堂无码久久久 | 国产黄色网站免费 | 国产精品福利成人午夜精品视频 | 99久久综合狠狠综 | 国产v一区二区三区日 | 国产最爽的av片在线观看 | 二区三区在线观看 | 99精品视频在线观看免费蜜桃 | 国产一区二区三区亚洲人妻 | 97无码人妻一区二区三区 | 国产一级久久久免费看 | 精品视频一区二区 | 国产精品无码久久久久久电影 | 精品国产一区二区三区在线 | 高潮流白浆在线观看 | 国产精品拍国产拍拍偷 | 精品国产欧美一 | 国产福利95精品一区二区三区 | 99久久午夜精品一区二区 | 国产成人精品视频在放 | 国产女人喷浆抽搐高潮 | 国内一国产农村妇女一级毛片 | 国产福利一区二区精品秒拍 | 国产精品乱码99久久久久久午 | 国产98在线日韩 | 国产免费午夜福利 | 2025最新无码免费 | 韩国太太的告白在线 | 国产成人亚洲综合无码精品 | 国产麻豆视传媒 | 国产精品午夜久久久久久99热 | 国产美女精品在线 | 国产一级a级毛片久久久久精品卡 | 国产成人综合在线 | 国产精品免费观在线 | 国产精品碰碰现在自在 | 国产精品一二三次视频 | 精品国产黄页网站在线观看 | 国产va在线观看免费 | 99久久精品九九亚洲精品 | 国产精品免费久久久久电影院 | 国产精品白浆在线播放 | 国产精品国产三级国产aⅴ9色 | 国产亚洲欧美在线观看一区 | 国产三级aⅴ视频在线观看 国产三级aⅴ在线播放 | 国产免费无遮挡吸奶头视频 | 丰满的少妇中出 | 国产一区二区黄色传媒 | 精品丝袜国产自在线拍 | 国产精品无码久久久久 | 国产精品视频线观看 | 国产成人a人亚洲精品无码 国产成人a视频 | 国产成人一区二区三区a片 国产成人一区二区三区电影 | 国产91熟女一区二区三区 | 国产精品无码一级毛片 | 国产成人亚洲精品无码vr | 国产高潮刺激叫喊视频 | 国产日韩久久久久精品院 | 911国产精品无码久久 | 国产a级一级毛片 | 国产一区二区免费在线 | 国产成人亚洲欧美综合 | 爆乳无码专区www | 国产精品成人av在线观看春天 | 国产极品乱码在线观看 | 国产一产二产三精华液 | 国产亚洲日韩精品欧美一区二区 | 国产一区二区三区不卡视频在线 | 国产一区二区精品久久91 | 国产成人久久精品一区二区 | 91高清在| 国产午夜精品精品 | a亚洲欧美中文日韩在线v日本 | 国产成人亚洲精品狼色在线 | 精品久久久久精品亚洲 | 成人免费一级纶理 | 成人午夜做受视欧美频 | 国产精品一区二区手机在线观看 | 国产97精品一区二区三区四区 | av无码一区二区 | 国产黄色软件 | 国产精品密播 | 国产亚洲欧美日韩在线我不卡 | 91精品在线国产一区 | 2025国产麻豆剧果冻传媒影视 | 99亚洲国产精品色一区二区三 | 国产成人一区二区三区欧美 | 国产精品一区久久 | 91福利视频免费 | 国产欧美成人综合一级青青 | 国产无码精品第8页 | 国产精品一区二区久久优播 | 国产无码毛片一区二区三区 | 国产极品高颜值美女在线 | 国产三级在线视频网址 | 精品亚洲欧洲一区二区三区不卡 | 成人中文字幕一区二区三区 | 成人免费无码大片a毛片抽搐 | 精品国产一区二区三区久久久81 | 东京热天堂人人操人人爱人人看 | 国产亚洲欧美激情久久电影 | 精品视频高清在线观看 | 国产成人无码精品久久久免 | 福利视频欧美精品 | 成人午夜视频一区二区无码 | 精品日韩在线三级色妞导航 | 国产精品无码翘臀在线观看 | 精品一卡二卡三卡四卡兔 | 国产精品白浆无码流出在线观看 | 国产一区二区三区亚洲人妻 | 国产福利精品一区二区无码 | 国产福利小视频在线播放观看 | 国产精品亚洲欧美一区二区 | 国产精品爆乳在线播放 | 国产女主播视频一区二区三区 | 丰满人妻少妇久久久久久 | 国产寡妇高潮一级毛 | 国产91精彩视频 | 精品动漫中文子幕亚洲欧美 | 国产在线观看免费完整版 | 国产探花 | av午夜福利一片免费看久久 | 国产日韩一区二区夜夜嗨 | 国产精品边做奶水狂喷 | 99国产精品欧美一区二区三区 | 国产精品成人品 | 国产精品无码直接看 | 国产成人一区二区三区在线视频 | 国产精品毛片在线完整sab | 国产一区二区三区色婬影院 | 国产在线观看码高清视频不卡 | 国产午夜激无码av毛片不 | a级毛片免费全部播放经典 a级毛片免费全部播放无码 | 91伊人久久 | 国产美女av毛片 | 91人妻人人澡人人爽人人精品 | 国产成人福利美女观看视频 | 精品国产国产综合精品 | 精品午夜一区二区三区在线观看 | 国产人与禽zoz0性伦 | 国产波霸爆乳一区二区黄色 | 国产成人精品系列在线观看 | 91成人国产网站在线观看 | 国产美日韩精品久久 | 91精品国产91久久久久福利 | 韩国精品视频福利一区二区 | 99精品国产在热久久无码 | 国产高清无码在线互动交流 | 国产av妓女影视妓女影院 | 精品国产一区二区三区色欲 | 国产成人a福利在线观看 | 国产欧美综合在线区专区 | 国产欧美va欧美va香蕉在 | 高清精品视频一区二区三区 | 91久久香蕉国产熟女线看 | 国产高清无码在线一区二区 | 成人毛片无码免费播放网站 | 91亚洲精品福利在线播放 | 国产精品无码无套在线 | 国产无套内射又大又猛 | 国产原创中文精品经理篇 | 国产精品va在线观看老妇女 | 69久久夜色精品国产 | 国产亚洲欧美精品一区 | 国产巨作麻豆欧美亚洲综合久久 | 国产91成人在在线播放 | 国产精品无码日韩欧 | 极品少妇被后入内射视 | 国产美女精品aⅴ在线 | 高潮胡言乱语对白刺激国产 | 国产一区二区在 | 高清欧美日韩视频一区二区 | 国产一区鲁鲁在线视频免费播放 | 苍井空一区二区三区在线观看 | 成人无码中文字幕在线不卡 | 国产成人毛片在线视频软件 | 国产交换配乱婬视频手机版 | 国产精品视频一区二区三区无码 | 国产在线拍揄自揄网址 | 91夜色精品国产 | 精品国产高清一区二区三区 | 成人午夜亚洲精品无码网站 | 国产成人综合久久亚洲精品 | 国产精品无码久久诱惑 | a级孕妇高清免费毛片 | 国产在线无码免费播放视频 | 国产在线观看精品一区二区三 | 国产素人在线观看人成视频 | 囯产精品宾馆在线精品酒店 | 国产精品一区二区三区久久久久 | 成人一区二区免费中文字幕视 | 国产高清无码在线互动交流 | 国产a级作爱视频 | 99久久精品无码免费视频播放 | 国产在线一区二区三区免费大片 | 岛国av无码不卡一区二区三区 | 精品无码一二三四区 | 91欧美精品午夜性色福利在线 | 国产不卡高清在 | 97人妻无码公开免费视频 | 国产精品丝袜自慰在线观看 | 国产精品白浆无码流出免费看 | a亚洲中文字幕人成影院 | 激情人妻偷乱在线视频 | 国产1区2区在线观看 | 国产精品成人小电影在线观看 | 精品日韩欧美一区二区三区在线播放 | 国产成a人亚洲 | 高清一区二区三区免费视频 | 国产午夜精品一二区理论影院 | 91久久国| 成人夜色香网站在线观看 | 91一区精品免费观看 | 国产+欧美日韩+一区二区三区 | 91久久人澡人妻人人澡人人 | 成人无码网www在线观看 | 91精品国产调教在线观看 | 国产一区二区三区不卡av | 国产午夜三级片 | 国产成人女人在线观看 | 国产猛烈高潮尖叫视频免费 | 2025亚洲中文字 | 成人在线视频高清无码不卡 | 精品人妻系列无码区久久 | 18成禁人视频免费午夜影视 | 成人综合激情 | 国产成人av在线播放不卡 | 国产高清无码日韩一二三区 | 精品国产一区二区三区久久狼 | 国产极品ts人妖在线观看 | 国产日韩精品在线观看 | 国产911在线观看 | 国产高清无码视频在线播放 | 国产精品后入内射日 | 国产成人精品无码一区二区三区 | 91大神精品网站在线观看 | 97人人夜夜视频精品 | 国产91熟女一区二区三区 | 国产精品白浆大屁股一区二区三 | 国产精品美女www爽爽爽 | 国产一区二区网曝门日韩 | 成人色视频在线看 | 国产午夜福利电影一区二区三区 | 国产精品成人无码免费 | 国产极品美女高潮无套app | 国产白丝精品91爽爽久久 | 国产免费日本高清 | 2025国产精品自产拍在线观看 | 91精品国产免费久久蜜桃 | 国产成人最新三级 | 国产亚洲情侣 | 国产无码一区二去三区 | 国产精品国产三级国产 | 国产av夜夜欢一区二区 | 国产精品亚洲夜色在线 | 国产精品v欧美精 | 国产综合在线视频一区二区 | 精品无码在线看片基地 | 成人亚洲欧美在线观看 | 国产爆白浆水真多视频 | 国产精品观看视 | 国产午夜伦伦 | 国自产拍偷拍精 | 国产日韩另类视频一区 | 成人免费毛片在线观看 | 国产制服丝袜你懂的 | 国产91蝌蚪在线­ | 国产精品无码久久av不卡 | 精品国产av色一区二区深夜久久 | 国产精品无码一区二区三区 | 国产黄色精品观看 | 91久国 | 国产成人无码免费视频软件 | 国偷自产中文二区三 | av无码免费 | 国产成人啪午夜精品网站男同 | 粉嫩虎白女流水自慰 | 成人中文乱幕日产无线码 | 国产丝袜美腿一区二区三区 | 国产蜜臀在线观看 | 国产美女精品牲交 | 东京热一区二区免费高清av | 91嫩草国产在线观看无码 | 国产一区二区三四区爱情岛论坛 | 国产不卡视频在线观看 | 国产巨胸爆乳裸体免费视频 | 丰满少妇一级特黄大片 | 国产91在线精品福利 | 99久久精品免费看国产四区 | 国产午夜无码视频免费网站 | 国产蜜臀久久v一 | 精品国产日韩亚洲一区在线 | 国产自揄拍3亚洲欧美日韩精品 | 国产在线观看91精品2025 | 东京热久久精 | 国产美女精品一区二区三区 | 国产一级内谢a级高清毛片古装 | 国产精品无码午夜免费麻豆 | 国产一区二区高清在线播放 | 高清无码黄色视频在线观看 | 国产在线精品一区二区三区 | 国产a视频的魅力与发展现状 | 加勒比久久综合久久 | 国产视频一区二区三区免费观看 | 国产毛片无码视频 | 国产亚洲日韩中文字幕欧美视频 | 国产欧美第一区二区 | 国产av综合影院 | 国产av玩弄放荡人妇性奴老师 | av无码爆乳护士在 | 国产精品亚洲国产三区 | 91在线无码精品秘入口九推油 | 国产精品国产三级国产àn不卡 | 1024手机看片基地你懂的 | av免费在线 | 91理论片午午伦夜理片久久 | 国产孕妇喷水视频在线播放 | 国产免费人成视频在线观看 | 国产精品无码久久av丝袜喷水 | 国产精品无码一区二区久日韩亚 | 2025亚洲韩国精品乱码 | 国产在线第一区二区三区可以下载 | 91在线国产专区精品 | 精品国产一区二区三区无码乌克兰 | 国产不卡福利片在 | 国产肥熟女视频一区二区三区 | 国产一区二区乱码在线播放 | 91亚洲成色精品一区二区三区 | 国产精品九九在线播放麻豆 | 国产a视频精品免费观看 | 国产自在在线观看 | 国产做av无码 | 丰满岳乱妇在线观看中字无码 | 精品无码视频在线观看专区 | 成人区人妻精品一区二区不卡麻豆 | a级片久久影 | 成人av在线一区二区三区 | 国产精品天干天干在线综合 | 成人小说亚洲一区二区三区 | 国产成人精品cao在线 | 国产麻豆剧果冻 | 国产v一区二区三区日 | 国产午夜亚洲精品不 | av亚欧洲日产国码无 | 国产精品人人爽人人做我的 | a级毛片无码兔费真人久久 a级毛片无码兔费真人久久91 | 国产成人福利一区二区三区 | 成人欧美视频在线观看 | av一区在线播放 | av片在线观看无码免费 | 91成人午夜精品福利院在线观看 | av毛片儿在线观看 | hezyo加勒比久久爱综合 | 精品国产一区二区三区av麻 | 精品无码无在线观看 | 国模无水印无码在线 | 2025亚洲综合一区二区 | 国产熟女一区二区三区五月婷 | 东京热无码一区 | av无码天堂一区二区三区 | 国产免费无码av片在线观看不卡 | 国产成人综合亚洲欧洲色就色 | 国产成人免费高清视频在线观看 | 国产精品爽爽va吃奶在线观看 | 国产综合精品国产精品va在线观看 | 国产精品专区在线免费观看 | 国产午夜精品理论片久久影视 | 国产精品日日摸夜夜添夜夜添 | 精品无码av一区二区三区不卡 | 成人在线免费观看网站 | 国产精品白丝av网站在线观看 | 国产精品盗摄!偷窥盗 | 国产成人www | 国产成人精品无码免费视频 | 国产av办公室丝袜秘书 | 福利小视频在线播放 | 丰满人妻熟妇乱又仑精品 | 精品人妻大屁股白浆宅男 | 精品无码av不卡久久久久 | 国产av原创首 | 国产精品视频一区二区三区 | 动漫av永久无码精品每日更新 | 成人免费无码精品国产91 | 成人小说亚洲一区二区三区 | 国内福利写真片视频在线观看 | 国产熟女视频一区二区免费 | 国产三级电影在线观看 | 二区三区成人片在线 | 国产精品视频一区无码 | 国产三a级日本三级日产三级 | 国产成人综合久久精品最新 | 国产真实乱对白精彩久久老熟妇女 | 国产精品日韩无卡一区二区 | 18禁成人黄网站免费观看 | 91国内精品久久久久怡红院 | 国产午夜理论不卡在线观看 | 国产一在线精品一区在线观看 | 国产精品四虎影视亚洲综合 | 国产成人精品无码播放 | 国产精品va在线观看无码电影 | 国精产品一二二区视频 | 国产精品美女久久久久久麻 | 国产麻豆精品久久久 | 国产午夜不卡 | 国产精品欧美日韩视频一区 | 国产一区二区三区鲁婷婷 | 精品国产三级av在线无码麻豆 | 国产av福利久久精品无码动漫 | 成人一区专区在 | 国产成年人精彩视频 | 国产免费人成视频尤勿视频 | 国产精品沙发午睡系列 | 91精品视频播放 | 潮喷失禁大喷 | 国产精品偷伦视频插放 | 精品国产人妻一区二区三区 | 国产交换配乱婬视频偷 | 国产欧美日韩视频网站 | 国产成人无码www免费视频在线 | 国产成人啪精品 | 国产大片在线观看 | 国产成人亚洲精品青草 | 国产成人a区在线观看视频 国产成人a视频 | 国产在线高清伦免费理视频 | 国产无码精品免费视频免费 | 国产成人av一区二区三区在线观看 | 国产精品三级av及在线观看 | 国产一区视频观看 | 成人三级视频观看 | 国产午夜亚洲精品国产成人 | 国产91在线观看网站 | 国产成人久久婷婷精品流白浆 | 国产色片大全在线观看 | 国产三级在线观看精品 | 国产成人精品免费视频动漫 | 国产精品丝袜在线观看 | 国产精品制服丝袜另类 | 高清无码视频专区 | 大尺度无遮挡激烈床震网站 | 国产成人a在线观看视频免费 | 精品国产自在精品国产精 | 精品国产欧美一区二区三区成人 | 波多野结衣高清中文在线 | a级毛片高清免费视频在线播放 | 国产麻豆剧传媒精品国产av | 精品亚洲成a人20257在线观看 | 国产91精品系列在线观看 | 国产亚洲综合日韩 | 911精品国产91久久久久 | 国产睡熟迷奷系列网站 | 精品国产品对白在线 | 国产爆乳无码视频在线观看 | 国产精品一区二区午夜嘿嘿嘿小说 | 国产精品午夜无码av天美传媒 | 国产午夜无码精品免费看性色 | 91福利国产在线 | 国产成人免费影片在线观看 | 国产一区精品在线 | 国产喷潮[心城梦海] | 2025国产精品香 | 国内免费一区二区三区 | 国产精品黄页网站在线播放免费 | 国产欧美精品综合区 | 成人精品国产一区 | 精品国产一区二区免费久久 | 国产福利第一视频在线播放 | 91在线无码精品秘 | 99爱内射一区二区三区四区 | 国产精品无码专区av免费播放 | 精品人妻无码一区二区三区视频 | 国产成年人免費黄色視頻 | 国产国拍亚洲精品永久软件 | 国产av网站一区二区三区久久 | 国产午夜福利短视频 | 18禁午夜福利a级污黄刺激 | 91精品手机国 | 岛国一区二区三区视频 | 99久久精品国产国产毛片 | 国产+欧美日韩+ | 国产欧美日产一区二区三区大全 | 国产高清一级毛片在线人 | 精品福利一区二区三区免费视 | 18禁无码无遮挡h动漫免费看 | 国产精品午夜无码av在线播放 | 国产一区视频在线观看 | 国产av福利久久精品can | 国产一区二区在线观看免费 | 精品日韩一区二区三区视频 | 成人h动漫精品一区二区无 成人h动漫精品一区二区无码 | 91在线精品| 国产精品高清偷窥盗摄 | 国产最新在线视频 | 国产av无码专区影视 | 国产成人综合久久精品推荐 | 国产在线精品福利91香蕉 | 精品亚洲一区二区三区四区五区 | 国产午夜激无码av片在线观看 | 国产午夜精品理论片a级a片 | 精品人妻大屁股白浆无码 | 国产午夜福利免费不卡在线观看 | 国产午夜电影在线观看不卡 | 国产高清无密码一区二区三区 | 精品人妻无码一区二区色欲aⅴ | 99久久国产热这里只有精品 | 国产成人综合免费在线观看 | 精品人妻一区二区三区含羞草 | 国产毛a片 | 国产在线视精品在二区 | 国产高清视频在线观看一区二区 | 成人午夜福利视频镇东影视 | 国产精品免费观看调教网 | 91麻豆国产原创剧情片 | 国产一区二区三四 | 国产一区二区三区精品观看 | 精品日韩午夜电影在线看 | 91在线无码精品秘在线观看 | 国产av一区二区 | 岛国av资源网 | 国精品午夜福利视频不卡 | 国产一区二区国产精品三级 | 91黑丝大长腿你视频里见过我 | 国产欧美视频一区二区 | 国产成人亚洲精品无码青青草 | 国产福利小视频在线播放观看 | 国产精品无码国产字幕av | 国产人妻精品一区二区三区不 | 国产午夜福利在线观看在 | 国产精品视频一区 | 国产成人a区在线观看视频 国产成人a视频 | 国产精品亚洲va | 成人免费无码大片a毛片抽搐色欲 | 国产成人精品视频免费 | 99精品国产福利一区二区 | 国产精品一区二区三区dbuen | 国产精品亚洲欧美日韩在线播放 | 国产剧情精品亚洲一区二区 | 国产在线视频国产永久视频 | 东京热人妻无码人av | 国产黄又粗遮挡免费视频 | 国产美女视频免费观看的网站 | 成人中文字幕一区二区三区 | 高潮胡言乱语对白刺激国产 | 成人艳情一二三区 | 国产女同精品一级在线 | 国产精品国语刺激对白在线观看 | 国产精品嫩草免 | 国产69式视频在线观看 | 国产精品无码一区二区三区不卡 | 国产高清一国产av麻豆网 | 国产成人综合欧美精品久久 | 18禁无遮挡啪啪无码网站性色 | 国产绿帽在线视频看 | 国产一二三区四区20 | 2025国产在线视频 | 国产一区二区三区久久精品 | 国产精品一区二区av不卡 | 国产成人综合欧美精品久久 | 成午夜精品一区二区三区秒播 | 国产精品啪啪视频一区二区 | 精品国产女同一区二区三区 | 东京热无码人妻一区二区av | 激情内射日本一区二区三区 | 国产美女高潮抽搐流水在线看 | 成人精品午夜无码免费视小黄人 | 2025国自产拍国偷 | 国产av福利片一二三四区 | 国产成人高潮拍拍拍18 | 高清无码中文 | 国产一区二区三区精品一级毛片 | 国产成人aa午夜视频 | 99久久精品免费精品国产电影 | 国产免费无码av片在线观看不 | 国产在在线免费观看 | 国产激情无码久久 | 精品高清一区二区三区 | 国产高清美女一级a毛片久久 | 国产精品秘一区二区三区高潮 |