我如何将网页内容放入字符串?
与点击ctrl + A并复制并粘贴它是一回事。
有没有办法在没有'sendkeys'的情况下以编程方式执行此操作?
我根本不想查看html源代码,我只想复制网站上的文字
答案 0 :(得分:2)
我已经为应用程序做了一些屏幕抓取,并发现这是非常宝贵的: https://github.com/MindTouch/SGMLReader
该页面上有一些示例代码,但我在这里添加了一些额外的内容,它将完全返回您想要的内容
Imports System.Xml
Imports System.IO
Imports System.Net
Imports System.Text
Function FromHtml(ByVal reader As TextReader) As XmlDocument
'' setup SgmlReader
Dim sgmlReader As Sgml.SgmlReader = New Sgml.SgmlReader()
sgmlReader.DocType = "HTML"
sgmlReader.WhitespaceHandling = WhitespaceHandling.None
sgmlReader.CaseFolding = Sgml.CaseFolding.ToLower
sgmlReader.InputStream = reader
'' create document
Dim doc As XmlDocument = New XmlDocument()
doc.PreserveWhitespace = True
doc.XmlResolver = Nothing
doc.Load(sgmlReader)
Return doc
End Function
Function LoadWebText(ByVal URL As String) As String
Dim objWebClient As New WebClient()
Dim objUTF8 As New UTF8Encoding()
Dim xml As New XmlDocument
xml = FromHtml(New StringReader(objUTF8.GetString(objWebClient.DownloadData(URL))))
Return xml.InnerText()
End Function
答案 1 :(得分:1)
以下是通过Microsoft的Internet控件加载yahoo.com并打印文本的一些代码。
在Visual Studio中创建一个新项目,转到“添加引用”页面,单击“COM”选项卡并添加“Microsoft Internet控件”。
然后将以下代码粘贴到函数中。
Dim MyBrowser As New SHDocVw.InternetExplorer
MyBrowser.Navigate("http://www.yahoo.com/")
Do Until MyBrowser.Busy = False
System.Threading.Thread.Sleep(100)
Loop
Debug.Print(MyBrowser.Document.body.innerText)
答案 2 :(得分:0)
如果您希望能够快速将所有内容复制到剪贴板,您可以使用运行javascript(bookmarklet)的书签,而不是创建带有URL的书签,您将包含以下内容:
javascript:void function(){document.addEventListener("copyText",function(t){t.preventDefault(),t.clipboardData%26%26t.clipboardData.setData("text/plain",document.body.innerText)}),document.execCommand("copyText")}();
答案 3 :(得分:-1)
是。看看这个。