Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default scraping text from the active window

I'd like to be able to have excel scrape text from an active window
while I'm surfing. I can currently import a picture, but would prefer
the text.

I do a snapshot using the following code:

Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal
bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Const VK_SNAPSHOT = &H2C
Public Const KEYEVENTF_KEYUP = &H2


Sub screenshot()

For i = 1 To 10000
For j = 1 To 10000
Next
Next
keybd_event VK_SNAPSHOT, 1, 0, 0
Range("a5").Select
ActiveSheet.Paste

Application.ScreenUpdating = True

End Sub

The reason for the loop is to give me time to click on the desired
window after I start the macro.

My thinking is there is a possibility that

keybd_event VK_SNAPSHOT, 1, 0, 0

Could be changed to scrape the text instead of the snapshot.

I understand a website can be scraped, but prefer not to do it this
way. And I know I can hit control A, control C and control V in the
spreasheet, but prefer not to do it that way.

Thanks,

Geoffrey Pritchard Tillingsley
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8
Default scraping text from the active window

Hello Geoffrey,

Typically you want to set the object and grab the inner
text. I'd use an array and split it on VBCRLF.

So if you want to grab text from a non-framed window, like
msn.com, try something like:

Sub Download_Unread1()
Dim ie As Object, frm As Object, myArr
Set ie = GetObject(, "InternetExplorer.Application")
myArr = Split(ie.document.body.innerText, vbCrLf)
[a5].Resize(UBound(myArr) + 1) = Application.Transpose
(myArr)
Set ie = Nothing
End Sub

You'll need to tweak this for frames, i.e., a google
newsgroup thread:

http://groups.google.com/groups?hl=en&lr=&ie=UTF-
8&threadm=01bb9ff3%244a93f360%24LocalHost%
40dpmellon&rnum=1&prev=/groups%3Fq%3D%2522I%2Bhate%
2BAccess%2522%26hl%3Den%26lr%3D%26ie%3DUTF-8%26selm%
3D01bb9ff3%25244a93f360%2524LocalHost%2540dpmellon %26rnum%
3D1

Sub Download_Unread2()
Dim ie As Object, frm As Object, myArr
Set ie = GetObject(, "InternetExplorer.Application")
'0-Based, 0 grabs left frame, 1 grabs right frame.
myArr = Split(ie.document.frames
(1).document.body.innerText, vbCrLf)
[a5].Resize(UBound(myArr) + 1) = Application.Transpose
(myArr)
Set ie = Nothing
End Sub

Hope this helps.

Regards,
Nate Oliver

-----Original Message-----
I'd like to be able to have excel scrape text from an

active window while I'm surfing. I can currently import a
picture, but would prefer the text.
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to open a workbook per active window Jackie[_2_] Excel Discussion (Misc queries) 1 August 19th 08 11:13 PM
missing Active Window bar Gomer Fackworth New Users to Excel 4 May 28th 08 02:13 PM
How to Determine if Application Window Still Active Edwin Kelly Excel Discussion (Misc queries) 3 June 26th 07 05:42 PM
Active Window Question CWillis Excel Discussion (Misc queries) 4 July 19th 06 05:52 PM
Web scraping mickbarry Excel Worksheet Functions 2 February 1st 06 10:20 AM


All times are GMT +1. The time now is 11:24 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"