PowerShell phân tích lớp div HTML

Tôi đang cố phân tích nội dung HTML từ nhiều tệp văn bản và chọn các phần cụ thể của từng tệp và sao chép nội dung này để sử dụng sau này để dán vào nội dung của tệp khác

Giá trị đã chọn sẽ được thêm vào một phần nội dung cụ thể của một tệp khác có tên tệp phù hợp, nằm trong một thư mục khác và chứa nội dung khác

Tệp được cập nhật với phần nội dung đã chọn từ tệp khác sẽ có một số nội dung cần được giữ nguyên trong đó và giữ nguyên


Thêm chi tiết

Giả sử tôi có mã html này từ FILE-1. html



YES, I love her



...

At the mobile site I put as the header location in case the device isn't mobile? And then it executes the php code you gave stack..

Simply check if the referrer is coming from within your site. If they are, they have already seen a page and have chosen where they want to go next

Tôi muốn sao chép toàn bộ nội dung văn bản từ FILE-1. html bắt đầu từ

  1. tất cả các cách để

và đưa cái này vào File-2. html nằm trong một thư mục khác trong một vùng cụ thể của nội dung tệp đó

Đối với mỗi tệp liên quan mà tôi nghi ngờ như được hiển thị trong hai chuỗi trên, các giá trị này có thể được sử dụng làm dấu phân cách thuộc một số loại để kiểm soát nơi sao chép từ và nơi sao chép vào

Đây là cả FILE-1. html và Tệp-2. html cạnh nhau với chú thích

Tệp-2. html cần được cập nhật có thể trông như thế này

Blog Content

Creativity leads to new inventions Home Blog

Other text 1

Other text 2

Comments

PowerShell phân tích lớp div HTML

Về cơ bản, tôi chỉ sao chép bài viết văn bản từ tệp này để đưa vào tệp khác. Văn bản đó, cũng thuộc về lớp, được đặt giữa các bình luận

Vấn đề là tôi đã thay đổi 3.000 tệp và tôi chỉ thực hiện việc này theo cách thủ công cho các nhóm tệp nhỏ hơn nhiều, vì vậy hãy cố gắng tìm ra một phương pháp hiệu quả hơn

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

Tôi đã thử sử dụng HTMLAgilityPack. dll để phân tích cú pháp và chuyển đổi nó thành Đối tượng XML/CSV/PS, nhưng tôi không thể. Bạn có hướng dẫn nào tôi có thể làm theo không?


Tôi hiện chỉ có phần đầu của mã và tôi có quyền truy cập vào các dòng nhưng không có dữ liệu trong các dòng. Tôi muốn chuyển đổi bảng thành PSObject và xuất nó sang csv

Add-Type -Path C:\Windows\system32\HtmlAgilityPack.dll
$HTML = New-Object HtmlAgilityPack.HtmlDocument
$res = $HTML.Load("C:\Test\Test.html")
$table = $HTML.DocumentNode.SelectNodes("//table/tr/td/nobr")

ngay khi tôi truy cập $table[0. 47]. Tôi có thể truy cập ** cột ** đầu tiên của tệp bằng InnerHtml, nhưng không thể truy cập cột thứ hai hoặc tiếp theo

Đây là phần tiếp theo của truy vấn tuần trước của tôi," được viết tại đây. " Tôi đã vượt qua vấn đề đầu tiên, nhưng bây giờ tôi đang gặp một vấn đề hơi khác

Bằng cách sử dụng hàm GetAttributeValue, giờ đây tôi có thể lấy thuộc tính của một mục nếu các thẻ html không được lồng vào nhau; . Tuy nhiên, tôi hiện đang gặp khó khăn khi truy xuất thuộc tính của một mục nếu các thẻ được lồng vào nhau; . Để phân tích cú pháp HTML, tôi đang sử dụng xpath và gói HtmlAgility, tuy nhiên trong ví dụ bên dưới, cùng một ngày được trả về nhiều lần

Đối tượng $item xuất hiện như sau

Attributes           : {class, data-pid}
ChildNodes           : {#text, a, #text, span...}
Closed               : True
ClosingAttributes    : {}
FirstChild           : HtmlAgilityPack.HtmlTextNode
HasAttributes        : True
HasChildNodes        : True
HasClosingAttributes : False
Id                   : 
InnerHtml            :  $20   Nov 
                       30  Unlock Any GSM Cell Phone Today!   $20    (Des Moines)      cell phones - by dealer  
InnerText            :  $20   Nov 30  Unlock Any GSM Cell Phone Today!   $20    (Des Moines)      cell phones - by dealer  
LastChild            : HtmlAgilityPack.HtmlTextNode
Line                 : 305
LinePosition         : 5408
Name                 : p
NextSibling          : HtmlAgilityPack.HtmlTextNode
NodeType             : Element
OriginalName         : p
OuterHtml            : 

$20 Nov 30 Unlock Any GSM Cell Phone Today! $20 (Des Moines) cell phones - by dealer

OwnerDocument : HtmlAgilityPack.HtmlDocument ParentNode : HtmlAgilityPack.HtmlNode PreviousSibling : HtmlAgilityPack.HtmlTextNode StreamPosition : 18733 XPath : /html[1]/body[1]/article[1]/section[1]/div[1]/div[2]/p[11] Attributes : {class, data-pid} ChildNodes : {#text, a, #text, span...} Closed : True ClosingAttributes : {}

Tôi muốn trích xuất thông tin từ giá trị outsidehtml

OuterHtml            : 

Nov 27 iPhone and other Cell Phone Unlocks (Des Moines) map cell phones - by dealer

Tôi không gặp khó khăn gì khi lấy dữ liệu-pid. Mã hiện tại xuất hiện như sau

ForEach ($item in $results) {

    # This is working
    $ID = $item.GetAttributeValue("data-pid", "")

    # This is looping over the same item
    $Date = $item.SelectSingleNode("//span[@class='date']").InnerText
}

Tôi muốn có thể sử dụng các lệnh xpath của mình để nhận các thuộc tính từ các thẻ khác nhau có trong đối tượng html bên ngoài, nhưng tôi không chắc cách thực hiện. Đây có phải là cách tiếp cận tốt nhất cho vấn đề hay tôi chỉ nên sử dụng một số biểu thức chính quy để nhận được giá trị mong muốn?