AndoyGomez Posted March 24, 2011 Posted March 24, 2011 Hi, I'm a newbie. I don't really know that much. I've exhausted all the help files available, but I still can't get what I want. I'm trying to make a script where I want to extract the data in maybe assign in it an array. However, I don't know how to extract the data, here's an example <a name='4beatz'></a> Is there anyway I can extract "4beatz" and assign it into an array? It's not only a single data, there's bunch of data but I don't know how. I don't know which _IE can do that for me. Any help will be much appreciated. Thanks
saywell Posted March 24, 2011 Posted March 24, 2011 If the fomat is consistent, _StringBetween using <a name=' and '></a> should extracy the bit you want. Do it in a loop to write to an array. You could also read the html file to an array [ _FileReadToArray ], check each element for the presence of <a name=' and use the stringbeetween command only on those elements that fit the match, adding the result to a new array as you go. Cleverer people than me will suggest a regex for this. I presume you've been able to download the html data that contains this? William
AndoyGomez Posted March 24, 2011 Author Posted March 24, 2011 If the fomat is consistent, _StringBetween using <a name=' and '></a> should extracy the bit you want. Do it in a loop to write to an array. You could also read the html file to an array [ _FileReadToArray ], check each element for the presence of <a name=' and use the stringbeetween command only on those elements that fit the match, adding the result to a new array as you go. Cleverer people than me will suggest a regex for this. I presume you've been able to download the html data that contains this? William Hi William, I looked up _StringBetween command, I don't think it'll help in this scenario. Cause the string I'm looking for is random. Like there's no pattern. But the format is somehow consistent. The _FileReadToArray is not applicable to since the html always updates, so I can't just download it and extract. :/ I'm really getting frustrated. But yeah, your help is really really appreciated. Thanks! Andoy
Moderators Melba23 Posted March 24, 2011 Moderators Posted March 24, 2011 AndoyGomez, Cause the string I'm looking for is random. Like there's no patternDo you mean there is no pattern to the string you are looking to extract or that there is no pattern in the surrounding code? If the former, then a StringRegExp should be able to extract the data as long as there is a pattern in the surrounding code. If there is no pattern in the surrounding code then you are unlikely to be able to do this automatically. Here is an example of an SRE extracting random elements from within surrounding code that follows a pattern: #include <Array.au3> $sString = "<a name='4beatz'></a>" & @CRLF & _ "blahblahblah" & @CRLF & _ "<a name='tom'></a>" & @CRLF & _ "blahblahblah" & @CRLF & _ "<a name='dick'></a>" & @CRLF & _ "blahblahblah" & @CRLF & _ "<a name='harry'></a>" & @CRLF & _ "blahblahblah" & @CRLF & _ "<a name='And a long one'></a>" $aReturn = StringRegExp($sString, "(?U)<a name='(.*)'><\/a", 3) _ArrayDisplay($aReturn) Does that help? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
AndoyGomez Posted March 24, 2011 Author Posted March 24, 2011 (edited) Hi Melba,Thank you for making me smile.I'll try that ASAP and let you know.*giggles*Thanks a bunch.EDIT:I think I'm doomed.Here's a screenshot of the data I want to extract and assign to an array.I only want to extract the NAMES! 4beatz, BlueDiverMasang, etc.As you can see, the format is not so consistent after all. And here's the html code:expandcollapse popup<div class='list-inner-tweet'> <span class="status">@<a href="/koocci">koocci</a> 불륜의 말로는 이렇게 순서대로 끝이 난다. : 희희락락->설왕설래->유두입문->질문공세->상하운동->고성방가->용암분출->목욕재개->의관정재->연락두절 <a href="/searches?q=%23koocci">#koocci</a></span> </div> <div class='list-tweet-status'> <a href="/kongmyeong/status/50715457736548352" class="status_link">about 14 hours ago</a> </div> <form action="http://mobile.twitter.com/kongmyeong/follow" class="user_button" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="30a96ba0bc15d74aa19c" /></div> <input id="last_url" name="last_url" type="hidden" value="/ylxxx/followers" /> <input type="submit" value="Follow" class="friend-actions-btn"/> </form> </div> </div> <a name='harang1009'></a> <div class='list-tweet' id='user_harang1009'> <div> <div> <strong><a href="http://mobile.twitter.com/harang1009">harang1009</a></strong> <br /> 하랑이 </div> <div class='list-inner-tweet'> <span class="status">일등에게는 다음회에 경쟁에서 벗어나 자신이 부르고 싶은 노래를 부르게하는 방법을 쓰는 겁니다 아니면 작은 콘서트를 마련해 준다던가 그럼 일등을 한 가수의 무대를 더 볼 수 있는거죠 포인트는 실력있는 가수의 순위매김과 탈락이 아닌 좋은 음악과 방송입니다</span> </div> <div class='list-tweet-status'> <a href="/harang1009/status/50576330751868928" class="status_link">about 23 hours ago</a> </div> <form action="http://mobile.twitter.com/harang1009/follow" class="user_button" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="30a96ba0bc15d74aa19c" /></div> <input id="last_url" name="last_url" type="hidden" value="/ylxxx/followers" /> <input type="submit" value="Follow" class="friend-actions-btn"/> </form> </div> </div> <a name='hakjunoh1227'></a> <div class='list-tweet' id='user_hakjunoh1227'> <div> <div> <strong><a href="http://mobile.twitter.com/hakjunoh1227">hakjunoh1227</a></strong> <br /> 오학준 </div> <div class='list-inner-tweet'> <span class="status">다음주 한겨레21 크로스주제가 "나는가수다"인데, 김어준씨가 제가할말을 다해버리네요 ㅠㅠ<br /><br />RT @<a href="/lomo_on">lomo_on</a> + 김어준 '나는가수다' 발언 <br /><br /><a href="http://t.co/pQnGQGP" target="twitter_external_link">http://t.co/pQnGQGP</a> <a href="http://bit.ly/ePNQ10" target="twitter_external_link">http://bit.ly/ePNQ10</a></span> </div> <div class='list-tweet-status'> <a href="/hakjunoh1227/status/50699969002352640" class="status_link">about 15 hours ago</a> </div> <form action="http://mobile.twitter.com/hakjunoh1227/follow" class="user_button" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="30a96ba0bc15d74aa19c" /></div> <input id="last_url" name="last_url" type="hidden" value="/ylxxx/followers" /> <input type="submit" value="Follow" class="friend-actions-btn"/> </form> </div> </div>Is it possible?:/ Edited March 24, 2011 by AndoyGomez
Moderators Melba23 Posted March 24, 2011 Moderators Posted March 24, 2011 AndoyGomez,As none of the strings you say you want (4beatz, BlueDiverMasang) actually appear in the HTML I am at a loss as to how you expect to extract them. You can extract these strings which do appear:<a name='harang1009'></a> <a name='hakjunoh1227'></a>as you can see: #include <Array.au3> $sText = "<a name='harang1009'></a>" & @CRLF & _ "<div class='list-tweet' id='user_harang1009'>" & @CRLF & _ "</div>" & @CRLF & _ "</div>" & @CRLF & _ "<a name='hakjunoh1227'></a>" & @CRLF & _ "<div class='list-tweet' id='user_hakjunoh1227'>" $aReturn = StringRegExp($sText, "(?U)<a name='(.*)'><\/a", 3) _ArrayDisplay($aReturn)but those do not appear in your screen shot. Are you sure that the HTML refers to that screen? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
AndoyGomez Posted March 24, 2011 Author Posted March 24, 2011 Hi Melba, You have skype or something? If you don't mind that is. Cause I'm kinda getting frustrated. I badly need help here, and a real time help will really be nice Thanks
Moderators Melba23 Posted March 24, 2011 Moderators Posted March 24, 2011 AndoyGomez,How much more "real time" do you want than this? I have shown you how to get the names from the HTML - how are you getting the HTML in the first place? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
AndoyGomez Posted March 24, 2011 Author Posted March 24, 2011 Sorry Sorry! I'm just really frustrated and desperate. To give you a bigger picture of what the script is about, here it goes. First thing, it will open IE. I know how to do that haha. At least. Then it'll go to a user inputed web site. Like in my case "http://mobile.twitter.com/ylxxx/followers" After that, it will extract all the names it can see and assign in an array. The thing is, I don't know what _IE to use. I hope you understand what I'm trying to say.
Moderators Melba23 Posted March 24, 2011 Moderators Posted March 24, 2011 AndoyGomez,_IEDocReadHTML gets you the HTML of a page, but you have to have the IE object identified first. Please post the code you are using to get to the page in question and we will see what we can do. When you post your code please use Code tags - put [autoit] before and [/autoit] after your posted code. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
AndoyGomez Posted March 24, 2011 Author Posted March 24, 2011 (edited) Sorry bout that Melba I thought [ code ] does the trick... #include <IE.au3> $oIE = _IECreate ("http://mobile.twitter.com/ylxxx/followers") Just that. Edited March 24, 2011 by AndoyGomez
Moderators Melba23 Posted March 24, 2011 Moderators Posted March 24, 2011 AndoyGomez,That is fine, so add the _IEDocReadHTML line and you should get the HTML content.What does this get you? #include <IE.au3> #include <Array.au3> $oIE = _IECreate ("http://mobile.twitter.com/ylxxx/followers") $sHTML = _IEDocReadHTML($oIE) $aReturn = StringRegExp($sHTML, "(?U)<a name='(.*)'><\/a", 3) _ArrayDisplay($aReturn)M23P.S. [code] works fine, but with [autoit] you get the pretty colours. Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
AndoyGomez Posted March 24, 2011 Author Posted March 24, 2011 Darnit. Can't believe it's that simple. Was thinking of a loop, if-else or something... Haha. Omg. :/ Melba, YOU'RE A GOD! Haha. Thanks so much. I'm not done though. I mean *sigh*. I'll try to figure this out on my own first, and if I get stuck again, I'll ask for your assistance again! MELBA the GODDESS! haha. Thanks again! Damn, I'm so noob.
Moderators Melba23 Posted March 24, 2011 Moderators Posted March 24, 2011 AndoyGomez. Melba, YOU'RE A GOD [...] MELBA the GODDESSEven in these "enlightened" times, I prefer to remain a single gender - and my wife would prefer it to be "male"! And I am by no means exceptional - I have just been around a bit longer. Glad you got it working. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
AndoyGomez Posted March 24, 2011 Author Posted March 24, 2011 Oh Crap. My Bad! I actually thought you were a girl, that's why I was extra amazed how good you were. But, going back, it's not actually showing me the array. So, I can't check if the value in the array are the ones I needed. I'm still very thankful for you Melba.
Moderators Melba23 Posted March 24, 2011 Moderators Posted March 24, 2011 AndoyGomez. I actually thought you were a girl, that's why I was extra amazed how good you wereTime for some more "gender diversity" training for you, young man - I hope you do not say things like that in the real world. One of the best coders on this forum has 2 "X" chromosomes and she leaves me for dead. it's not actually showing me the arrayThat is because you did not give the correct pattern surrounding the names. When I get the HTML from that page, the names look like this: <A name=trashjp></A So we need to adjust the SRE to match that pattern - try this: #include <IE.au3> #include <Array.au3> $oIE = _IECreate ("http://mobile.twitter.com/ylxxx/followers") $sHTML = _IEDocReadHTML($oIE) $aReturn = StringRegExp($sHTML, "(?i)(?U)<a name=(.*)><\/a", 3) ConsoleWrite(@error & @CRLF) _ArrayDisplay($aReturn) Does it work now - it does for me? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
AndoyGomez Posted March 24, 2011 Author Posted March 24, 2011 :D If you can only see me now Melba. Hahaha. That's all for today mate. I'm really so thankful and I highly appreciate your help... I'm guessing your major is Computer Science or something?! Thanks mate!!! I'll try to do this on my own if I can... It's really nice to know you, Melba
Moderators Melba23 Posted March 24, 2011 Moderators Posted March 24, 2011 AndoyGomez,your major is Computer Science or something?!No, I am a retired fighter pilot. I now fly small aircraft for the Air Training Corps (an organisation in the UK for air minded youngsters) getting a new generation interested in flying - just as I help out here to get a new generation interested in coding. Do I take it that you get your array now? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
AndoyGomez Posted March 24, 2011 Author Posted March 24, 2011 AndoyGomez,No, I am a retired fighter pilot. I now fly small aircraft for the Air Training Corps (an organisation in the UK for air minded youngsters) getting a new generation interested in flying - just as I help out here to get a new generation interested in coding. Do I take it that you get your array now? M23Yes yes. Sorry, I kinda got excited and forgot to answer your question. God, I never would've guessed. I'm lost for words. I'm just amazed how talented you are. Thanks again so much! I deleted a whole bunch of text. Haha. I'm just too embarrassed to ask. I'll really try to finish the script on my own.Have a good day, Melba
Moderators Melba23 Posted March 24, 2011 Moderators Posted March 24, 2011 AndoyGomez,I'm just too embarrassed to askDo not be - how else are you going to learn? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now