Results 1 to 5 of 5

Thread: Python - Searching SDB for specific item.

  1. #1
    |2eap's Avatar
    Joined
    Jun 2013
    Posts
    3,461
    Userbars
    17
    Thanks
    2,493
    Thanked
    2,677/1,388
    DL/UL
    75/0
    Mentioned
    822 times
    Time Online
    111d 10h 50m
    Avg. Time Online
    46m

    Python - Searching SDB for specific item.

    So i've been tinkering around for awhile with some code and I can't seem to figure it out.

    I've tried this


    And i've tried as a get



    I am successfully authorized on Neopets and logged in. It keep returning "Not finding any items matching your criteria" When it is in-fact in the SDB.

    Furthermore, I've tried c/p the url exactly when doing a get and i still get "Not finding any items matching your criteria".

    I've tested another users code using a different login method and mechanizing the browser and it seems to work following the paths/controllers.

    What am I missing?

    What is weird is, if I remove the check and just run the code straight through, it will remove the item IF it is in the SDB. if it is not in the SDB. it will still attempt to and say it has successfully done so even when it hasn't. The only time it prints error removing item is if there is a faulty pin.

    Thanks lads, contact me here or skype(preferably) if you got me.

  2. #2
    Black on Black Vegeta's Avatar
    Joined
    Dec 2011
    Posts
    123
    Userbars
    8
    Thanks
    40
    Thanked
    192/58
    DL/UL
    31/0
    Mentioned
    33 times
    Time Online
    7d 6h 59m
    Avg. Time Online
    2m
    Tum de dum
    Last edited by Vegeta; 01-31-2017 at 12:38 PM.

  3. #3
    Zachafer's Avatar
    Joined
    Dec 2011
    Posts
    1,235
    Userbars
    11
    Thanks
    769
    Thanked
    1,463/678
    DL/UL
    98/0
    Mentioned
    511 times
    Time Online
    24d 11h 54m
    Avg. Time Online
    9m
    @(you need an account to see links)
    You set the encodedItem variable but is not used in the rest of the code.
    Debug the values of pos1, pos2, pos3, html[pos2:pos3], and html (after the final acc.post call) , and the problem should become obvious

    Not sure what class you are using for web connections, but I know that some home-made solutions have problems with POSTing when a ? is in the URL.
    Last edited by Zachafer; 01-26-2017 at 01:34 PM.

  4. #4
    |2eap's Avatar
    Joined
    Jun 2013
    Posts
    3,461
    Userbars
    17
    Thanks
    2,493
    Thanked
    2,677/1,388
    DL/UL
    75/0
    Mentioned
    822 times
    Time Online
    111d 10h 50m
    Avg. Time Online
    46m
    Quote Originally Posted by Zachafer View Post
    @(you need an account to see links)
    You set the encodedItem variable but is not used in the rest of the code.
    Debug the values of pos1, pos2, pos3, html[pos2:pos3], and html (after the final acc.post call) , and the problem should become obvious

    Not sure what class you are using for web connections, but I know that some home-made solutions have problems with POSTing when a ? is in the URL.
    The variable encodedItem in the first code snippet was just there from trying as a get in example two. I should have taken it out or commented it out but it's not needed in the post request.


    And the second post request still removes the item from SDB. its the initial request for searching the specific item that returns the item is not in SDB. I've tried it as a get and post but it returns the same thing.

    This is where it's happening.

    url = "http://www.neopets.com/safetydeposit.phtml"
    postdata = {}
    postdata['obj_name'] = item
    postdata['category'] = 0
    html = acc.post(url, postdata)
    print html

    or

    encodedItem = item.lower().replace(" ", "+").strip()
    url = "http://www.neopets.com/safetydeposit.phtml?obj_name=" + encodedItem + "&category=0"

    html = acc.get(url)
    print html

    I'm logging in with a edited working variation of neoaccount.py. But basically the same build

  5. #5

    Joined
    Jul 2012
    Posts
    1,889
    Userbars
    18
    Thanks
    1,619
    Thanked
    3,295/1,001
    DL/UL
    223/0
    Mentioned
    469 times
    Time Online
    132d 23h 52m
    Avg. Time Online
    51m
    From my kad feeder:
    Code:
    def removeFromSDB(item):
        #Search Item
        html = acc.get("http://www.neopets.com/safetydeposit.phtml?obj_name=%s&category=0" % urllib.quote_plus(item),"http://www.neopets.com/safetydeposit.phtml")
        
        #Check if the item was found on the SDB
        if 'Not finding any items' in html:
            return False
        
        regex = '<td align="left"><b>%s<br><span class="medText">[\s\S]+?<td align="left"><b>([\w\s]+?)<\/b>[\s\S]+?back_to_inv\[(\d+?)\][\s\S]+?total_count=\'(\d+?)\'' % re.escape(item)
        
        try:
            category,code,amount = re.findall(regex,html)[0]
            postData = ([
                        ("back_to_inv["+code+"]",amount),
                        ("pin",PIN), #Delete this if needed
                        ("obj_name",urllib.quote_plus(item)),
                        ("category","0"),
                        ("offset","0")
                        ])
            html = acc.post("http://www.neopets.com/process_safetydeposit.phtml?checksub=scan",postData,"http://www.neopets.com/safetydeposit.phtml?obj_name=%s&category=0" % urllib.quote_plus(item))
            return True
        except IndexError:
            #Only items that contain the item we wanted ("Mau Codestone" => "Mau Codestone Plushie")
            return False
    @(you need an account to see links) I can send you my SDB remover if you want. I think I updated it not long ago but forgot to upload here.

    Edit:
    The code it's copied&pasted from another program and I just noticed that if you want to remove the item "Mau Codestone" and you have 10 it'll remove all of them.
    Last edited by Daviid; 01-27-2017 at 03:57 PM.

  6. The Following User Says Thank You to Daviid For This Useful Post:

    |2eap (02-01-2017)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •