Lấy đường link từ file txt với cấu trúc html

Liên hệ QC

NT24

Thành viên mới
Tham gia
15/12/20
Bài viết
12
Được thích
0
Chào anh chị em trong diễn đàn!
Tôi có một file txt như file đính kèm.Nội dung trong đó có chứa các đường link cần lấy nằm trong các thẻ của html.Các anh chị cho hỏi làm sao để dùng Vba lấy các đường link đó ra excel ?
Xin chân thành cảm ơn!
 

File đính kèm

  • sample.txt
    1.5 KB · Đọc: 19
Upvote 0
Bạn nói rõ cách làm được không?cảm ơn bạn
Nếu tôi hiểu link trong "Lấy đường link ..." là link thực sự thì chưa có code nào trong chủ đề này làm chuẩn 100%. Hoặc làm vừa thiếu vừa thừa, hoặc cho kết quả sai.

Với tôi thì link là cái mắt tôi nhìn thấy, tay tôi có thể đưa chuột tới nó, và khi click thì tôi sẽ được chuyển sang chỗ khác. Đấy mới là LINK. Vì thế những vd. 'https://www.332343546855.com:9900/' trong thẻ script đâu có là link? Có nhìn thấy, có thể click vào https://www.332343546855.com:9900/ không?

Giả sử sample.txt và tập tin Excel nằm cùng thư mục. Nếu khác thì sửa filename. Không phải chọn gì trong Tools cả.
Mã:
Sub Test()
Dim count As Long, filename As String, text As String
Dim htmlDocument As Object, fso As Object
Dim el As Object
    Set htmlDocument = CreateObject("HtmlFile")
    Set fso = CreateObject("Scripting.FileSystemObject")
    filename = ThisWorkbook.Path & "\sample.txt"
    htmlDocument.body.innerHTML = "<html><head>" & fso.OpenTextFile(filename).ReadAll
    
    For Each el In htmlDocument.getElementsByTagName("a")
        count = count + 1
        Sheet1.Range("A" & count).Value = el.href
    Next el
    Set htmlDocument = Nothing
    Set fso = Nothing
End Sub
 
Upvote 0
Nếu tôi hiểu link trong "Lấy đường link ..." là link thực sự thì chưa có code nào trong chủ đề này làm chuẩn 100%. Hoặc làm vừa thiếu vừa thừa, hoặc cho kết quả sai.

Với tôi thì link là cái mắt tôi nhìn thấy, tay tôi có thể đưa chuột tới nó, và khi click thì tôi sẽ được chuyển sang chỗ khác. Đấy mới là LINK. Vì thế những vd. 'https://www.332343546855.com:9900/' trong thẻ script đâu có là link? Có nhìn thấy, có thể click vào https://www.332343546855.com:9900/ không?

Giả sử sample.txt và tập tin Excel nằm cùng thư mục. Nếu khác thì sửa filename. Không phải chọn gì trong Tools cả.
Mã:
Sub Test()
Dim count As Long, filename As String, text As String
Dim htmlDocument As Object, fso As Object
Dim el As Object
    Set htmlDocument = CreateObject("HtmlFile")
    Set fso = CreateObject("Scripting.FileSystemObject")
    filename = ThisWorkbook.Path & "\sample.txt"
    htmlDocument.body.innerHTML = "<html><head>" & fso.OpenTextFile(filename).ReadAll
  
    For Each el In htmlDocument.getElementsByTagName("a")
        count = count + 1
        Sheet1.Range("A" & count).Value = el.href
    Next el
    Set htmlDocument = Nothing
    Set fso = Nothing
End Sub
Cảm ơn bạn đã quan tâm bài viết. Đúng như bạn nói là link khi nhấn vào sẽ được chuyển đến trang khác. Với đoạn script là đoạn code random để chạy ngẫu nhiên các link trong thẻ list danh sách kia. Và những đường link đó tôi cũng muốn lấy. Nghĩa là trong tập html của web đó có đường link là sẽ lấy đấy bạn. Nhìn cách viết code của bạn thì hình như có thể lấy trực tiếp khi có địa chỉ trang web đó chứ không nhất thiết là một file txt đúng không. Hiện tại tôi không ngồi máy tính. Ngày mai tôi sẽ thử code của bạn.? Chân thành cảm ơn!
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn đã quan tâm bài viết. Đúng như bạn nói là link khi nhấn vào sẽ được chuyển đến trang khác. Với đoạn script là đoạn code random để chạy ngẫu nhiên các link trong thẻ list danh sách kia. Và những đường link đó tôi cũng muốn lấy. Nghĩa là trong tập html của web đó có đường link là sẽ lấy đấy bạn. Hiện tại tôi không ngồi máy tính. Ngày mai tôi sẽ thử code của bạn. Chân thành cảm ơn!
Khỏi phải thử. Code của tôi chỉ lấy link theo cách hiểu của tôi, không lấy những link theo mong muốn của bạn.
 
Upvote 0
Nếu tôi hiểu link trong "Lấy đường link ..." là link thực sự thì chưa có code nào trong chủ đề này làm chuẩn 100%. Hoặc làm vừa thiếu vừa thừa, hoặc cho kết quả sai.

Với tôi thì link là cái mắt tôi nhìn thấy, tay tôi có thể đưa chuột tới nó, và khi click thì tôi sẽ được chuyển sang chỗ khác. Đấy mới là LINK. Vì thế những vd. 'https://www.332343546855.com:9900/' trong thẻ script đâu có là link? Có nhìn thấy, có thể click vào https://www.332343546855.com:9900/ không?

Giả sử sample.txt và tập tin Excel nằm cùng thư mục. Nếu khác thì sửa filename. Không phải chọn gì trong Tools cả.
...
Ở bài #12 tôi đã có nói chỉ cần dùng đúng cái object để parse Dom Document là giản dị và chính xác.
Nhưng có lẽ bà con thấy cái code dùng Regex nên hứng chí thử vậy thôi.
 
Upvote 0
Ở bài #12 tôi đã có nói chỉ cần dùng đúng cái object để parse Dom Document là giản dị và chính xác.
Nhưng có lẽ bà con thấy cái code dùng Regex nên hứng chí thử vậy thôi.
Em thì quan tâm cái địa chỉ trang web để có được nội dung như bài #1. Nhưng lại sợ bị nhắc rì quét nhiều ảnh hưởng... nên không í ới gì. :)
 
Upvote 0
Nếu tôi hiểu link trong "Lấy đường link ..." là link thực sự thì chưa có code nào trong chủ đề này làm chuẩn 100%. Hoặc làm vừa thiếu vừa thừa, hoặc cho kết quả sai.

Với tôi thì link là cái mắt tôi nhìn thấy, tay tôi có thể đưa chuột tới nó, và khi click thì tôi sẽ được chuyển sang chỗ khác. Đấy mới là LINK. Vì thế những vd. 'https://www.332343546855.com:9900/' trong thẻ script đâu có là link? Có nhìn thấy, có thể click vào https://www.332343546855.com:9900/ không?

Giả sử sample.txt và tập tin Excel nằm cùng thư mục. Nếu khác thì sửa filename. Không phải chọn gì trong Tools cả.
Mã:
Sub Test()
Dim count As Long, filename As String, text As String
Dim htmlDocument As Object, fso As Object
Dim el As Object
    Set htmlDocument = CreateObject("HtmlFile")
    Set fso = CreateObject("Scripting.FileSystemObject")
    filename = ThisWorkbook.Path & "\sample.txt"
    htmlDocument.body.innerHTML = "<html><head>" & fso.OpenTextFile(filename).ReadAll
   
    For Each el In htmlDocument.getElementsByTagName("a")
        count = count + 1
        Sheet1.Range("A" & count).Value = el.href
    Next el
    Set htmlDocument = Nothing
    Set fso = Nothing
End Sub
Bạn cho hỏi thêm nếu thay file txt là một đường link,và như bạn nói là sẽ lấy những đường link có thể click được.thì code nên sửa như thế nào? cảm ơn bạn
 
Upvote 0
Bạn cho hỏi thêm nếu thay file txt là một đường link,và như bạn nói là sẽ lấy những đường link có thể click được.thì code nên sửa như thế nào? cảm ơn bạn
Tôi không dám nói trước điều gì nhưng đã nói thế thì phải đưa đường link lên. Đâu phải trang web nào cũng như nhau. Đến con gái mỗi người một vẻ, nhan sắc, tính cách, ngoại hình không như nhau. Với người con gái này cần phải tiếp cận từ mặt này, với người con gái khác lại phải từ mặt khác.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom