日韩福利首页在线观看网站-日韩福利免费网站视频在线-日韩福利局二区视频-日韩福利-日韩二区在线-日韩二区三区四区-日韩二区三-日韩电影中文字幕

半岛外围网上直营

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足球大全(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 在线看片免费人成视频手机观看 | 国产永久精品一区二区污污 | 亚洲处破女 | 观看一区二区视频 | 国产又黄 | 日韩中文字码无砖 | 欧美高清一级毛 | 亚洲人和日本人jzz视频 | 欧美激情视频区一区二区在线观看 | 乱码在线卡一卡二卡新区豆瓣 | 国产天堂网在线视频 | 51vⅴ免费视| 欧美中文字幕乱伦视频 | 最新院线大片抢先看 | 自拍亚洲欧美 | 国产午夜亚洲精品午夜鲁丝片 | 亚洲一区二区三区视频 | 欧美日韩高清有码 | 欧美日韩在线一本卡 | a级国产乱理伦片在线 | 日韩欧美综合在线另类 | 欧美一区一区二区 | 国产一区二区高清在线 | 国产宅男z资源网站 | 国产精品天美传媒在线观看 | 美腿丝袜亚洲综合在线视频 | 日韩综合一卡二卡三卡死四卡 | 国产中文字幕在 | 国产私拍一区二区三区 | yy4080国| 尤物网红麻酥酥 | 国产叼嘿网站在线观看 | 中文韩国午夜理伦三级好看 | 国产精品一区在线 | 国产亚洲熟女电影院 | 国产精品99久 | 国产情侣一区二区 | 国产在线播放不 | 欧美亚洲日韩国产综合网 | 欧美中文幕 | 国产不卡一区二区三区免费视 | 欧美特一级 | 日本高清中字 | 一区国严二区 | 成人伊人222 | 91国产精品午夜福利免费 | 91九色私密保健 | 日韩午夜福利免 | 8天堂资 | 日韩精品男人的天堂 | 成·人免费午夜视频含羞草 | 一区二区三区四区 | 日本中文 | 日本不卡一线二线不卡在线 | 国产精品偷伦视频免 | 国产精品mv在 | 日本一级a大片在线观 | 高清一级做a爱过程不卡视频 | 97se亚洲国产综合自在线观看 | 国产91成人超清在线 | 国内精品视频一区二区在线观看 | 欧美精品一区二区在线精 | 欧美福利影院 | 亚洲综合另类小说色区一 | 亚洲国产精品尤物yw在线观看 | 欧美日韩精品一区二区在线播放蜜 | 午夜a级理论片在线播放不卡 | 国产精品网站在线观看免费传媒 | 亚洲综合色一区二区三区 | 亚洲精品中文字幕无乱码 | 亚洲精品自有码中文字 | 中文有码国产精品 | 韩国高清乱理伦片中文字幕 | 国产亚洲色 | 日韩视频一区二区在线观看 | 亚洲中字幕日产aⅴ | 亚洲日本aⅴ精品一区二区在线 | 国产精品高清一区二区不卡 | 亚洲一二三区在线观看 | 国产福利日本一区二区三区 | 国产色精品vr一区二区 | 国产偷亚洲偷欧美偷精品 | 日本一夲道dvd在 | 日本免费一二 | 国产乱码高清区二区三区在线 | 97久章草在线视频播放 | 亚洲一区二区福利在线观看 | 国产日韩在线观看一区二区三区 | 国产在线精品一区二区不卡 | 国产亚州视频在线八a | 日本三级在线 | 国产一级a一级a爰片免费无 | 日本又黄又粗又大gif动态图 | 靠逼视频一区二区三区 | 日本一二线不卡在线观看 | 国产日本视频二本道在线观看 | 日本三级强在线观看 | 午夜影视免费 | 综合精品三级亚洲 | google浏览器 | 国产午夜福利片在线观看一区 | 欧美三级极品视频在线观看 | 国产鲁鲁视频在线观看免费 | 国产超刺激玩弄美女在线播放 | 看看电影网| 国产最新在线观看 | 韩国三级伦在线观看久 | 18虎白女 | 国产亚洲精品aaa大片 | 精品亚洲一区二区三区在线观看 | 日本成a人片在线中文 | 欧洲色综合 | 福利吧导航 | www.成人影片 | 51黑料在线吃瓜婷 | 思思99re5国产在 | 亚洲v国产v日韩v欧美v | 18国产午夜福 | 国产思思精品视频 | 国产精品免费在线观看一区 | 日本高清一 | 男女性爱视频的完整版 | 亚洲国产日韩欧美视频二区 | 国产精品高清m3u8在线播放 | 91普通话国产对白在线 | 国产精品成人观看视频免费 | 欧美日韩变态另类在线观看 | 处破痛哭a√18成年片免费 | 国产乱国产乱 | 国产护士va在线观看 | 国产精品秘果冻 | 天天综合网天天综合色 | 日韩欧美亚洲国产另类 | 日韩欧美国产偷亚洲清高 | 国产日产高 | 国产美女一级a视频欧洲 | 亚洲加勒| 国精品一区二区三区免费观看 | 中国精品国产yw | 国产高清在线看 | 欧美一级www片免费观看 | 欧美中文字幕在线视 | 14表妺毛还没长齐 | 精品国产高清自在 | 欧美日韩精品专区在线 | 欧美精品1卡二卡 | 国产又黄又刺激又爽视频黄 | 92手机看片| 秋霞理伦韩国在线电影 | 亚洲aⅴ乱码一区二区波多野 | 日本综合aⅴ精品视频 | 国产高清在线不卡一区二区三区 | 国产性爱专区在线 | 天堂а√中文在线官网 | 绯色一区二区 | 成人亚洲xxx在线观看 | 大学生香蕉国产视频 | 国产又大又黄又粗又长的视频 | 欧美日韩高清国产aⅴ | 91视频亚洲电影 | 看一级特黄a大一片电影 | 日韩精品在线二区三区 | 九九线精品视频在线观看视频 | 免费观看国产一区二区三区 | 中日韩在线视频 | 亚洲日韩乱码中文字幕 | 99精品国产自在现线观看 | 日本aa大片在线播放免费看 | 不卡在线播放中文字幕在线 | 欧美一区二区三区免费 | 欧美大片在线观看免费视频 | 全网最新院线电影 | 香蕉久人久人青草青草 | 91精品欧美 | 欧美日韩一区二区不卡三区 | 欧美一二区视频 | 欧美又大粗又爽又黄大片视 | 菊花综合网亚洲中文字幕 | 国产精品精品国内自产拍视频 | 欧美性猛交xxxx乱大交 | 男女车车的车车网站w98免费 | 免费看美女部位隐私网站 | 乱色熟女综合一 | 激情一区| 韩剧日剧在线看 | 硬又粗视频 | 18视频免费网址在线观看 | 成人福利国产精品视频 | 午夜成人亚洲理伦片在线观 | 精品中文字幕 | 乱伦影视亚洲日本 | 好吊妞www在线观 | 国产精品美女自在线观看免费 | 中文字幕亚洲综合久 | 日韩女优一区视频 | 国产精品99精品一区二区三区 | 国产精品三级三级 | 国产精品va在线观看 | 国产亚洲精品九九久在线观看 | 精品欧美日 | 国产理论自拍 | 国产理论高清一卡二卡三卡 | 国产乱理伦片a级在线观看 东京男人的天 | 日本一区二区三区四区公司 | 欧美日韩国产无线码一区 | 国产女同精品 | 日本高清免费中字 | 日本精品一区二区三区在线 | 亚洲综合色区在线播放 | 18c.mic禁慢天堂王者 | 亚洲免费视频一区二区 | 国产精品乱视频 | 亚洲日韩欧美一区二区在线 | 国产精品任我爽爆在线播放 | 成年人影片免费看 | 中文字幕无吗热视频 | 欧美综合国产日本 | 欧美线在线精品观看视频 | 国产亚洲精品精品国产亚洲综合l | 厨房里征服美艳老师 | 欧美日韩一区二区三区精选 | 国产日韩一区二区精品在线播放 | 国产乱肥老妇国产一区二 | 国产午夜福利在线观看视频 | 91视频在线网站 | 国产国产人成免费视频77777 | 国产精品自在在线午夜免费 | 影音先锋女人aa鲁色资 | 日本中文字幕乱码免费 | 国产婷婷精品任我爽欧美 | 国产日韩一区欧美 | 精品国产自在现线免费观看 | 欧美激情综合一区二区三区 | 秋霞国产午夜伦午夜福利片 | 成人福利app导航秘 国产在线观看色 | 女视频网站 | 亚洲欧美人成在线视频 | 91一区免费高清在线 | 精品成人免费一区二区 | 偷拍美女厕所 | 在线看片国产日韩欧美亚洲 | 日本欧美中文字幕精品一区 | 最新国产99视 | 亚洲aⅴ精品国产首次亮相 日韩美女aa高清在线观看 | h片在线观看资源网站 | 国产开嫩苞实拍在线播放 | 国产在线一91区免费国产91 | 国产主福福利在线观看 | 亚洲va国产日韩欧美精品 | 国产欧美亚洲一区二区 | 国产一区二区视频免费 | 亚洲色大成网 | 国产欧美日韩精品a在线观看高清 | 狼人亚洲国内精品自在线 | 国产免费一区二区三区在线 | 日本阿v免费观看视频 | 成人污污污www网站免费 | 日本国产性爱观看视频 | 日本精品在线观看 | 国产精品喷潮在线观看 | 是每一个韩剧迷的韩剧tv! | 最近免费中文字幕大全免费版视频 | 国产伦一区二区精品视频 | 欧美喷潮极限另类视频 | 国产亚洲精品线观看k频道 大香网伊 | 玖玖爱精品免费在线视频 | 97亚洲自拍另类欧美综合 | 国产玖玖在线观看 | 国产欧美日韩一区二区三区在线 | 国产成在线观看免费视频 | 日本一区中 | 国产一级一级一级国产片 | 久夜色精品国产一区二区三区 | 国产乱来| 欧美日韩中文字幕在线琳琅 | 国语自产视频在线 | 日本高清com| 国产精品自产拍在线观看55 | 国产日韩综合精品一区二区三区 | 中国特级黄大片视频 | 亚洲成a人v欧美综 | 日韩欧美视频 | 国产日产韩国精品视频 | 国产又色又亚洲免费小视频 | 最爽的乱淫视频国语对 | 亚洲欧洲日产国码a | 老少配老妇老熟女中文普通话 | 中文字幕免费观看一区 | 国产精品亚洲综合一区在 | 国产精品一区二区在线免费播放 | 日本一区二区三区四区在线观看 | 国产中文字幕不卡在线观看 | 欧美亚洲一二三区视 | 亚洲一级a大片一级 | 国产精品自在线拍国产电影 | 久热爱精品视频在线 | 亚洲精品成a人在线观看 | 亚洲午夜国产片在线观看 | 九九精品视频 | 亚洲国产欧美日韩 | 97国语精品自产拍在线观看一 | www.污污污在线观看 | 国产精品网曝门免费视频 | 亚洲性人人天天夜夜摸 | 国产玉足榨精视频在线观看 | 69成人免费视频 | 韩国三级中文字 | 成在线人永久免费视频播放 | 国产高清在线观看一区二区三区 | 欧美一级电影一区二区 | 欧美激情一区二区三区中文字幕 | 欧美亚洲精品午夜理论片 | 天天视频美女靠逼 | 有码在线观看免费 | 丝袜亚洲日韩另类 | 亚洲无线一二三四区手机 | 国产免费私拍一区二区三区 | 巨大乳女人做爰视频在线看 | 国产微视频在线观看网站 | 成人性生交大片免费看r | 欧美日韩一区二区三区自拍 | 成年人1| 日本欧美另类视频在线 | 国产老妇伦国 | 18分钟处破好 | 成人精品久 | 老牛影视精品亚洲一区二区 | 不卡免费观看 | 国产在线成观看视频播放 | 国内欧美日韩在线 | 国产视频亚洲 | 成人永久免费网站在线观看 | 日韩激情一区二区三区在线影院 | jizz日本人 | 97视频久 | 亚洲精品国产电 | 国产福利一区二区久 | 日韩高清一 | 手机高清热播韩剧美剧电视剧 | 欧美在线观看二区 | 99日韩a及免费视频 日产国产精品日韩精品 | 成人高辣h视频一区二区在线 | 成品网站w在线观看 | 国产高清在线丝袜精品一区 | 国产xxxx色视 | 国产精品91一区二区三区四区 | 大陆老熟女洗澡性视频tube | 99re6在线视频精品免费下载 | 福利社影院 | ww网站免| 国产性夜夜春夜夜爽18 | 亚洲激情视频图片 | 日韩欧美在线一区二区三区 | 影音先锋女人aa鲁色资 | 日韩熟女激情中 | 亚洲精品伊人 | 国产主播一区二区三区在线观 | 区中文字幕 | 高清线视频 | 日韩欧美一区二区三 | 成全电影大全在线观看 | 中文字幕国产在线观看 | 亚洲中文字幕乱码熟女在线 | 正在播放国产多p交换视频 成年网站免费视频黄a站 | 亚洲va在线va天堂va在线 | 91国自产精品中文字幕亚洲 | 欧美日韩在线精品一区二区 | 韩国午夜理论a三级在线观看 | 亚洲人成欧美中文字幕 | 国产精品一区二区日韩91 | 亚洲欧美日本一区 | 免费国产黄频在线观看视频 | 92在线精品视频 | 91国内揄拍国内精品对白不卡 | 日韩电影免费在线观看视频 | 国产精品色一区二区三区 | 国产在线精品一区二区三区精品 | 56prom精品视频在放免费 | 国产欧美日产中文一区 | 亚洲v国产v日韩v欧美v | 国产精品毛多 | 欧美亚洲精品在线 | 精品日本一区二区三区在线观 | 国产无须下载的免 | 国产情侣套| 日韩国产 | 亚洲精品国产摄像头 | 一级特黄国产免费大片 | 日本电影一区二区三区 | 俺去也短剧网 | 国产乡下三级全黄三级 | 日韩成a人在线观看 | 有码在线观看免费 | 一区二区性爱视频 | 97久视频精品视频在线老司机 | 日韩欧美一区二区三 | 日韩国产亚洲精品制服另类 | 欧亚尺码专线欧洲b1b1 | 欧美日韩国产在线人成 | 精品一线二线三线区别在哪欧美 | 性欧美暴力猛交6 | 三级视频网站在线观看视频 | 日韩亚洲综合精品国产 | 中文字幕在线第46页 | 国产福利91精品在线观看 | 国产精品区二区三区日本 | 99www免费人成精品 | 成人亚洲欧美成αⅴ人在线观看 | 成人va视频国产 | 国产簧片 | 国产熟女露脸对白硬了精品 | 午夜一级福利 | 色吊丝中文字幕一区二区三区 | 国产一级午夜福利免费区 | 91人人澡人人 | 国产日韩综合中文字幕 | 日本强伦姧| 国产第一视频在线直播 | 亚洲性人人天天夜夜摸 | 狠狠五月天 | 国产在线精品香蕉综合网一区 | 欧美曰韩免费一级在线 | 国内精品视频成人一区 | 国产欧美日韩在线视频 | 视频在线中文字幕亚洲 | 最新日本一道免费一区二区 | 国产老女露脸二区 | 中文字幕在线视频 | 国产性猛交xxxx乱大交 | a级国产乱理伦片在线观看 国产精品欧美激情第21页 | 中文岛国精品亚洲一区 | 国产日韩欧美第二页 | 日韩午夜福利在线免费观看 | 亚洲天堂2025女人天堂 | 日韩精品一区二区三区中 | 97色伦97色伦国产在线 | 巨熟乳波霸若妻在线播放 | 亚洲精品高清中文字幕完整版 | 麻花果冻视频大全英文 | 日韩国产卡一卡二卡三卡四 | 欧美一区二区精品国产日韩 | 国产欧美va欧美vahd | 国产日韩第一页亚洲 | 国产精品亚洲综合欧美日韩第 | 日韩理论中文在 | 美腿丝袜亚洲综合在线视频 | 欧美小视频在线 | 欧美变态口味重另类在线视频 | 国产一区自拍视频 | 精品国产91乱码一 | 日韩一区二区三区四区五区 | 韩国福利影视一区二区三区 | www.日 | 日本高清免费不卡视频 | 不卡一区二区在线观看 | 免费国产午夜激情片 | 国产影视 | 欧美在线精品国自产拍愿 | 国产欧美日韩一区二区三区蜜桃 | 日韩精品国产另类专区 | 国产日产免费视频网站 | 欧美性一 | 国产对白老熟女正在播放 | 亚洲五月六月丁香激情综合 | 国产免费aⅴ一区二区三区 禁止18点击进 | 国精产品一码一码三mba | 欧美日韩美女精品一区二区 | 日韩成人精品二区 | 日本高清不卡一道免费观看 | 日本国产性爱观看视频 | 日本a优不卡在线播放 | 国产精品1024永久免费视频 | 国产线精品视频在线观看 | 99久高清| 日本在线卡一卡二卡3卡四卡 | 亚洲国产一区二区三区综合片 | 国产免费真实喷潮视频 | 国产欧美日韩丝袜精品一区 | 日本亲子乱子伦xxxx | 欧美变态口味重另类 | 国产精品亚洲视频在线观看 | 91秒拍国产福利在线观看 | 亚洲第一香蕉 | 国产又粗又猛又黄又爽视频 | 中文字幕在线免费专区 | 成人抖音下载 | 午夜福利一区在线 | 国产欧美日本韩国高清 | 亚洲人色大成年网站在线观看 | 亚洲人成激情在线播放 | 激情精品一区二区 | 国产一区二区三区四区五区 | 国产福利91精品一区二区 | 国产2025 | 欧洲欧美精品日韩色午夜 | 日本强不 | 免费精品日本 | 神马影院手机在线观看 | 国产精品电影在线 | 欧美日韩日本在线观看一区 | 国产精品日韩欧美一区2区3区 | 国产福利不卡视频在免费 | 日韩欧美精品最新 | 日韩欧美一级中文字幕 | 欧美日韩国产亚洲 | 国产乱子伦沙发睡午觉 | 成人字幕网视频在线观看 | 观看一区二区视频 | 精品亚洲成a人片在线观看 亚洲欧美日韩国产综合在线看片 | 欧美亚洲精品久五月亚洲综合婷婷 | 成人免费区一区二区三区 | 日韩国产欧美二区手机在线 | 成人理论电影在线 | 污污美女网站 | 日本二三区在线观 | 国产精品猎奇系列在线观看 | 日韩在线观看一区二 | 日韩+欧美一区 | 亚洲人色大成年网站在线观看 | 欧美日韩在线观看精品 | 国产精品线在线精品 | 不要钱不用登陆的污直播 | 亚洲日韩一区二区三区四区高清 | 中文字幕在线观看亚洲视频 | 国产一区日韩二区欧美三区 | 玩弄大乳奶水 | 园内精品自拍视频在线播放 | 国产在线观看免费视频在线 | 第一福利精品500在线导航 | 成年网站v片在线观看 | 入禽太深免费 | 国产欧美日韩精品视频一区二区 | 精品国产福利在线观看91 | 成人国产精品秘在线观看免费 | 国产乱子伦60女人的皮视频 | 亚洲久热 | 日本精品中文字幕阿v免费 日韩精品亚洲精品第一页 视频在线播放在线观看 | 欧美肛门| 欧美一区二区电影免费观看 | 欧美性爱播放器 | 欧美一级高清在线观看 | 不卡能搜索的 | 日产亚洲一区二区 | 亚洲成a人v欧美综 | 欧美亚洲精品久五月亚洲综合婷婷 | 国产99视频精品免费观看9 | 国产码欧美日韩高清综合一区 | 欧美视频亚洲视频日韩动漫 | 日韩在线一区二区三区观 | 日本成人精品在线免费观看 | 日韩高清va视频 | 国产巨作在线无遮 | 免费观看成人成视频大全 | 日韩欧美一区二区三区在线视频 | 亚洲精品aⅴ中文字幕乱码 国产综合精品在线 | 日韩一区在线欧美激情 | 九九九热在线精品免 | 办公室激情上司和秘书小说 | 91看片| 日本天堂视频在 | 亚洲国产丝袜美腿在线播放 | 国产日韩亚洲欧美在线观看 | 日韩欧美自拍 | 免费国精产品自偷自偷免费看 | 欧美大片在线观看免费视频 | 污污污污污免费网站在线观看 | 精品国产自在在线在线观看 | 中文字幕一区日韩高清 | 小苹果www在线 | 小姨子在旁边差点被看到 | 免费在线宅男精品视频 | 欧美一性一乱 | 日本aⅴ精品一区二区三区日 | 99精品视频免费热播 | 国产一级αⅴ片免费看 | 国产精品一区不卡在 | 亚洲精品国产一级高清在线观看 | 含羞草国产亚洲精品岁国产精品 | 亚洲欧洲自拍偷拍 | 凄辱护士日本电影免费看 | 国产又色又爽又刺激在线播放 | 国产91福利精品免费观看 | 国产精品爱草草视频 | 国产国拍 | 色色色setu| 最好的观看2025中文 | 欧美日韩另类在线专区卡通 | 久青草视| 日韩v午夜视频在线观看 | 国产精品一区二区精品视频导航 | 美女福利| 中文字幕一区二区三区四区五区 | 国产精品天天天天影视 | 欧美亚洲日本国产黑白插 | 免费视频精品一区二区三区 | 国产99精品视频一区二区三区 | 国产欧美日韩在线视频 | 山外人精品影院 | 日本视频| 国产视频一区二区在线观看 | 国产主福福利在线观看 | 国产精品天天看 | 国产欧美一区二区精品性色 | 福利午夜国产网站在线不卡 | 国产亚洲午夜影视在线观看 | 桃色影视国产一区二区三区 | 欧美午夜不卡在线观看最新 | 最新91精品老司机在线 | 日本高清成本人视频一区 | 日本一区二区三区国产精品 | 精品第一区二区三区 | 含羞草国产亚洲精品岁国产精品 | 欧美巨大黑人暴力xxxxx黑人 | 99相伴健康一生 | 国产精品高清小罗 | 区三区影院视频 | 亚洲欧美日韩国产精品一区二 | 国产日韩在线看 | 亚洲v欧 | 日本免费亚洲视频 | 国产精品亚洲第一区在线观 | 乱子伦国 | 国产尤物亚洲精品不卡 | 99久在 | 女同在线电 | 成人精品一区二 | 日韩高清亚洲日韩精品一区 | 精品国内自产 | 欧美高清另类自拍视频在线看 | 欧美高清国产一区二区三区 | 国产精品福利自产拍在线观看 | 国产99视频精品免费观看9 | 国产精品自线在线播放 | 国产精品自在线拍国 | 国产亚洲午夜影视在线观看 | 国产综合在线观看 | 国产日韩视频印度女人性液 | 中文天天综合7799精品 | 国产欧美va天 | 亚洲欧美日韩另类国产第一 | 无人视频在线观看免费播放影院 | 国产香蕉尹人在线观看视频 | 中文字幕日本有码视频在线 | 国产精品揄拍100视频最近 | 999在線視頻精品免 欧美国产日韩高清在线 | 天堂在线最 | 99爱第一视频在线观看 | 亚洲aⅴ精品一区二区三区 亚洲欧美一区 | 污污网站在线观看免费 | 91亞洲播播 | 国产偷窥熟女 | 国产不卡视频一 | aⅴ国产在线播放 | 国产精品丝袜综合区丝袜 | a级情欲片| 日本亚洲欧洲免费无线码 | 国产日韩欧美一区二区三区欧 | 欧美videosfre | 91免费网址| 日韩经典午夜福利发布 | 亚洲国产福利成人一区二区 | 91福利小| 羞羞视频app官 | 三年片在线观看免费 | 精品黑人| 性感美女| 国产精品美乳免费看 | 欧美日韩国产一区二区三区欧 | 牛牛在线视频 | 亚洲国语中文字幕理论片 | 在线精品国产第一页 | 成人a级高清视频在线观看 成人人电影 | 亚洲国产日韩一级精品视频网站 | 日本高清动作 | 国产精品不卡福利小 | 国产高清一区二区三区四区 | 国产探花| 狠狠热精品免费视频 | 国产亚洲高清一区二区 | 国产一区福利 | 精品欧美亚洲影视 | 国产18午夜免费观看 | 国产欧美日韩精品综合 | www亚洲 | 日本三级在线观看511 | 日韩欧美激情 | 99精品欧美一区二区蜜桃免费 | 亚洲丝袜在线观看 | 91国自产精品 | 日韩aⅴ手机在线 | 日韩欧洲区精品一区二区 | 成年站免费网 | 亚洲美女视频网 | 国产在线精选免费视频含羞草 | 日本中文字幕一区在线观看 | 国产乱子伦精品免费视频 | 国产香蕉在线观看 | 韩国三级日本三级美三级 | 国产免费第一区二区三区 | 国产精品理伦片 | 亚洲欧美国产制服另类 | 国产网站一区二 | 三年片观看免费观看大全 | 亚洲一区精品在线视频 | 日本中文字幕视频网址 | 国产一区日韩二区欧美 | 欧美亚洲国产日韩综合在线播放 | 91色窝窝国产蝌蚪在线观看 | 最好看的日本电影免费 | 免费高清欧美一区二区三区 | 片午夜在线观看 | 欧洲在线一区 | 国产高清在线 | 999www人成免费视频 | 成aⅴ人片在线观看蜜桃 | 精品国产日韩一区2区3区 | 99热首页 | 欧美日韩国产58香 | 日韩四色在线视频观看网站 | 精品第一区视频二区 | 91福利国产极品美女在线观看 | 精品国产自在97香蕉 | 国产精品第一页第一页 | 中文日产无乱码v在线观 | 日本xxx在线观看免费播放 | 痴汉系列在线观看 | 免费国产va在线观看视频 | 狠日狠干日曰射 | 亚洲人午夜射精精品日韩 | 日本高清www在线观看视频 | 欧美精品偷自拍另类在线观看 | 国产天堂五月丁香 | 午夜高清性色生活片 | 国产一线精品一区在 | 精品蓝导航视频福利在线 | 欧美日韩午夜福利一区二区 | 14表妺毛还没长齐 | 亚洲欧美乱伦日本 | 成人精品国产亚洲 | 国产久热精品 | 噼里啪啦影院大 | 动漫精品无 | 神马午夜电影网手机在线播 | 国产乱视频在线观看 | 日本一区二区三区精品免费 | 91免费国产在线观看 | 日韩日皮在线一区二区 | 国产一区二区精品在线 | 精品一区二区三区四区 | 国产欧美日韩精品综合 | 一日本道伊 | 日韩精品视频美在 | 91香蕉成人免费网站 | 亚洲午夜视频在线 | 国产香蕉尹人在线 | 窝窝午夜理论片影院 | 成年人在线观看视频网站 | 国产99re在线播放 | 国产午夜福利在线看 | 欧美粗大猛烈水多18p | 好吊妞在线新免费视频 | 特别黄的免费视频大片 | 成人国产一区 | 亚洲一区二区三区首页 | 欧美性xxxx| 国产主播一区二区三区在线观 | 91探花在线观看 | 日本亚洲美国别类图片 | 99re视频在线| 三级乱伦国产欧美 | 国产精品午夜福利 | 欧美日韩一区二区成人午夜电影网 | 岛国岛国免费ⅴ片 | 欧美激情000ⅹxx同性 | 日韩午夜理 | 我被两个老外抱着高爽翻了 | 成人午夜影院 | 日本老妇人 | 国内精品国语自产拍在线观看91 | 在线亚洲日韩欧美一区二区 | 国产在线观看91精品 | 91精品专区国产在线观看高清 | 国产一区女优在线观看 | 国产在线观看免费a∨ | h的动漫在线观看亚洲一区 片免费看 | 天天影院 | 成全影院电视剧在线观看 | 成人a∨电影天堂 | 中文字幕v亚洲日本在线电影 | 亚洲中文欧美日韩在线不卡 | 国产精品午夜 | 国产乱子伦午夜视频观看 | 91精品视频网 | 国产一级特 | 成人18免费网站 | 国产叼嘿网站在线观看 | 欧美日韩激情中文字幕在线播放 | 精品含羞草免费视频观看 | 精品亚洲a∨在线播放不卡 国产经典三级在线播放 |