1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

How would you recomend someone start learning to create custom bots?

Discussion in 'Black Hat SEO Tools' started by Im So Burgh, Nov 22, 2015.

  1. Im So Burgh

    Im So Burgh Newbie

    Joined:
    Nov 2, 2012
    Messages:
    18
    Likes Received:
    0
    Hi,

    I've been a member and have used different bots available on and off for a few years now. While there are a lot of great ones available, the more I get into it the more I'm beginning to think that it'd be really beneficial in the long term for me to learn how to code and make my own custom one. I'm a fast learner and willing to put in the time, but at the moment have very limited programming skills. Where would you recommend I start? Which programming language should I take up first?

    Thanks!
     
  2. YourMoneyButton

    YourMoneyButton Senior Member

    Joined:
    Dec 1, 2013
    Messages:
    971
    Likes Received:
    211
    Location:
    Automating The Web
    Python or uBot.

    Python is free but takes a bit longer. Ubot is around $1000 for a dev license and all the necessary paid plugins.
     
  3. ZennoScripts

    ZennoScripts Regular Member

    Joined:
    Aug 21, 2015
    Messages:
    203
    Likes Received:
    72
    Location:
    USA
    Step one - Create simple bots first (extremely simple)

    The rest will follow
     
    • Thanks Thanks x 1
  4. Hego Damask

    Hego Damask Newbie

    Joined:
    Nov 20, 2015
    Messages:
    7
    Likes Received:
    1
    I haven't actually made a bot to do IM but I've automated many other things with CS. I recommend learning about HTTP and all the request types, and it would be good to have a working knowledge of Javascript insofar as you'll be familiar with web programming a bit. As for actually coding the bot, you could do it in any number of languages. C++ is my personal favorite, but I know many folks use Java or C#.
     
  5. Cnotey

    Cnotey Power Member

    Joined:
    Jun 25, 2010
    Messages:
    713
    Likes Received:
    915
    Location:
    Seattle
    Home Page:
    Use Ubot to start out with. It helps you get used to the general flow of programming a bot. After that, use C# or Golang. For the love of all that is holy on BHW do not use Python. If you look in my post history, a while back I thought it might be a good idea because of the open source libraries available. It was not. Waste of ~4 weeks of programming time.

    The dynamic typing and Global Int Lock are a pain in the ass. The latter preventing multi-threading which is a core requirement for IM bots.

    Golang and Node.js are super fast. But C# is probably the best language to start out on because it is so strongly typed. But first, start with Ubot.
     
  6. SethTurin

    SethTurin Jr. VIP Jr. VIP

    Joined:
    Nov 19, 2011
    Messages:
    289
    Likes Received:
    153
    Occupation:
    President and CEO of Seth Turin Media, Inc. - Crea
    Home Page:
    You can start with UBot Standard for not too heavy an investment. After that, upgrading gives you more features that are more "programmy" but not as important in the beginning (unless you feel comfortable, and then I'd say start with Pro).

    And we're about to open a sales thread to promote the new UBot Studio Stealth, so that will make it even cheaper...
     
  7. McPatrick

    McPatrick Regular Member

    Joined:
    Feb 1, 2015
    Messages:
    244
    Likes Received:
    103
    Gender:
    Male
    Occupation:
    Problem-solver
    Location:
    London
    Home Page:
    Well easiest is Ubot, but to do it properly you would need to go for a custom solution. Not sure why Cnotey don't like Python, but for beginners imo it is best language. When I started with it it took me about 3-4 weeks to get to a level of creating basically any kind of regular difficulty bots. Then you have a lot of open libraries, it is probably best documented language with examples everywhere and the best thing - it is very logical and graphically simple. Its easy to read and it just makes sense when compared to for example JavaScript which is pain for beginners to work with.
    If you can learn html, bootstrap, php and python then you can create basically anything.
    IF by any chance you are in to Windows apps - this is the only situation where I would avoid Python and go for the Windows-first solution like C#.
     
    • Thanks Thanks x 2
  8. SethTurin

    SethTurin Jr. VIP Jr. VIP

    Joined:
    Nov 19, 2011
    Messages:
    289
    Likes Received:
    153
    Occupation:
    President and CEO of Seth Turin Media, Inc. - Crea
    Home Page:

    I kind of like the sound of that....

    But seriously, if you think you'll be better of starting out programming by jumping headfirst into difficult concepts and languages then by all means, go for it. Save yourself a few hundred measly bucks.

    But take it from an expert - After about a decade of coding, I was able to fully comprehend the value of a system that minimized some of the tedious parts of it and let me build applications that got the job done and just made money. Thus, UBot was born.

    And it's lined a lot more pockets than mine......
     
  9. Cnotey

    Cnotey Power Member

    Joined:
    Jun 25, 2010
    Messages:
    713
    Likes Received:
    915
    Location:
    Seattle
    Home Page:
    I disagree. Having been through what he is currently going through, I gave him the best advice possible. Rust does not have the backing of Google behind it, so Go is a great long term suggestion. As a veteran IM'er being in this trade for nearly 10 years now, buy Ubot, use it. Then learn C# or GO.

    While Python is an easy language to learn, it suffers from the GIL, which makes multi-threading a complete pain in the ass. For those of you new to IM, multi-threading is a necessity of our trade. Thus my suggestion of C# with Async, or Golang with Goroutines.
     
    Last edited: Nov 24, 2015
  10. McPatrick

    McPatrick Regular Member

    Joined:
    Feb 1, 2015
    Messages:
    244
    Likes Received:
    103
    Gender:
    Male
    Occupation:
    Problem-solver
    Location:
    London
    Home Page:
    No, not really. It takes a bit of research but there are at least 3 options ready to go to solve that. Simple multiprocessing with map (multiprocessing in 3 lines - this is what is called if I remember properly) get you similar performance to other languages. I never had issues with multiprocessing after initial research that took me ~3 days to fully grasp differences between multiple options (and I agree they are hard to spot at first). Since some time Python really changed regarding threading/multiprocessing.
    Here is good summary: http://stackoverflow.com/a/3046201/5258867
    Parallelism in 3 lines - very well explained: http://chriskiehl.com/article/parallelism-in-one-line/
     
    Last edited: Nov 24, 2015
  11. Cnotey

    Cnotey Power Member

    Joined:
    Jun 25, 2010
    Messages:
    713
    Likes Received:
    915
    Location:
    Seattle
    Home Page:
    From what I understand of Python 3, the multi-threading is not "true" multi-threading. All of the threads still run on a single core.

    This is straight from Python.org:

    I should also add. I am DEFINITELY, not a programmer by trade. I am self taught. I have taught myself C#, Golang, Python, Ruby, and Node.JS. I'm sure there are people with a much better grasp of programming than I do.

    What I am saying. Is that I am an IM veteran who took up programming to create bots. My path was the easiest for me. The OP asked for advice. I gave advice that I wish I would have gotten had I been him.
     
    Last edited: Nov 24, 2015
  12. McPatrick

    McPatrick Regular Member

    Joined:
    Feb 1, 2015
    Messages:
    244
    Likes Received:
    103
    Gender:
    Male
    Occupation:
    Problem-solver
    Location:
    London
    Home Page:

    I am not using Python 3 so I cannot say. Python 2.7 offers true multiprocessing with each process being completely independent.
    Each process can use free core, rather than being stacked on the same one. I am running up to 20 processes on 1 GB VPS for tests and they are completely independent. You just need to remember to fit protection like timeouts etc. so you wont be hanging with frozen processes.

    edit: Just one thing - Python multiprocessing requires a bit more ram than some other solutions, but it is still not tremendous amount. So this is imo only downside - but due to short learning curve and being friendly language I prefer to pay $5 more for VPS rather than spend 1 hour more coding something in different language.
     
    Last edited: Nov 24, 2015
  13. 23cromij

    23cromij Junior Member

    Joined:
    Sep 7, 2013
    Messages:
    101
    Likes Received:
    7
    Occupation:
    Entrepreneur
    Location:
    UK
    dude. we need to speak, pm me you're skype
     
  14. ZennoBlaster

    ZennoBlaster Senior Member

    Joined:
    Jan 17, 2014
    Messages:
    1,029
    Likes Received:
    310
    I used Zennoposter for 2 yrs now, and there hasn't been a single job or project that I couldn't achieve!
     
  15. SethTurin

    SethTurin Jr. VIP Jr. VIP

    Joined:
    Nov 19, 2011
    Messages:
    289
    Likes Received:
    153
    Occupation:
    President and CEO of Seth Turin Media, Inc. - Crea
    Home Page:
    Wow, this is getting intense! One thing I want to add is the importance of high level languages over low level languages. A lot of people swear by low level languages like C++. Others will go as high level as c# but no higher than that. The main reason for this is that low level languages process faster than high level languages do.


    And that processing speed is super important if you're, say, piloting a mars rover. But in the business of internet marketing, being first to market or first to try an idea is everything. And when you need to get your bot done quickly, a function executing in 12 milliseconds instead of 6 milliseconds just isn't that big of a deal.


    The thing about high level languages is that they are ​*orders of magnitude*​ faster to develop in. Python has been shown to have 10x faster dev cycles than java. That means that if you wrote a bot in python, it might take you 2 days, where the same bot in java would take you 20 days. Now imagine pouring your heart and soul into something that took a year in python! Good luck ever finish that in something like java.
     
    • Thanks Thanks x 1
  16. bmills

    bmills Junior Member

    Joined:
    Jan 14, 2010
    Messages:
    150
    Likes Received:
    81
    Location:
    Southern California
    Home Page:
    Here are some languages that I find are the best for beginners that can be used well for creating SEO bots and scrapers. I prefer languages that are cross platform so you can scale 'em up, unless you are going for browser emulation (see zennoposter / ubot).


    Python
    Pros: Great scripting language for beginners. Clean syntax and is used a ton by SEOers for scraping (A few popular link list providers use custom python scrapers).
    Cons: Threading sucks; Can get slow at times; no editor to tell you syntactic errors (misspelling variables, etc. - I find this happens a lot with beginners).


    Javascript (Nodejs)
    Pros: Javascript is used everywhere and is not going anywhere; Very, very, very scalable (Netflix uses it); Extremely fast. I would probably recommend this first because it's very powerful and you can use it on the front end (think websites).
    Cons: Callback hell - Due to javascript asynchronous nature (which is why it's fast), code can get messy. A bit more complicated than the others and can get frustrating.


    Java
    Pros: You will learn how to program right. People say "Ohhh OOP is soo last year" and I say stfu you hipsters. It is easy to understand and adopt especially for beginners. Rust and golang are harder to wrap your head around and are more niche. As your first programming language, I don't recommend you to learn it. Anyways, Java has the best VM and handles multi-threading like a boss. It will tell you when you have an error in your code right when you type it, so you won't be debugging as long as the scripting languages. An amazing domain miner (Expired Domain Miner) is coded in java.
    Cons: Forced OOP - but honestly I think this is good for a beginner; Performance - Sometimes the JVM can be a memory hog.


    C#
    Pros: It's very similar to Java, but built for windows. Yeah, you can use cross-platform tools that allow you to run it on different OSs, but the tools are so-so at best. I don't have too much experience with C# so I can't comment too much.
    Cons: Not sure but there are some.


    Zennoposter
    Pros: This is not a language, but for 87$ you can start developing your own bots that work. And they work well. I built a moz api creator bot in less than an hour. I have experiences in the above languages, but 80% of the time I use ZP to make my bots. It just makes sense time-wise. If your bot does not need to be scaled to an extreme level (account creation, blog management, citation submissions) then don't waste your time programming and get this.
    Cons: You aren't creating a bot from scratch which has the limitations of the software itself, however, you can execute external programs and pipe output to Zennposter; Russians make this app, so support is meh.


    Ubot
    Pros: Same thing as Zennoposter, just a little more expensive. The cool thing with Ubot is that you can create your own .exe and sell them. I haven't used it but the guy that runs it seems like a good guy and support is top notch.
    Cons: See Zennoposter.

    Consensus: 1.) Zennoposter / Ubot, 2.) Java, 3.) Javascript / Python, 4.) Hipster languages

    #2 and #3 can be switched, but I think learning OOP with a strict IDE goes a long way.
     
    • Thanks Thanks x 1
  17. yenerich

    yenerich Jr. VIP Jr. VIP

    Joined:
    May 26, 2013
    Messages:
    1,195
    Likes Received:
    188
    Home Page:
    Hi,

    I am a bot developer. I use ASM, but thats very complicated as a starting, even ruby is complicated as starting point (ruby is VERY powerfull).

    To start, without the need to purchase anything i recommend Autoit or C# if you have some idea about coding.

    Later if you decide to sell your software, you may change to something more sofisticated. But to start you can go fro c# or even VB.net


    My 2 cents
     
  18. Cnotey

    Cnotey Power Member

    Joined:
    Jun 25, 2010
    Messages:
    713
    Likes Received:
    915
    Location:
    Seattle
    Home Page:
    @Ialwaysbecoding,

    Erlang is another great choice I agree! Clojure would also be another great suggestion along the same lines as Rust. But I have found Golang to be able to meet my concurrency needs better than anything else. I just found that for me learning as a beginner, strongly typed static languages were the easiest to learn. Thus my recommendations of C# and Go. To me static, strongly typed languages provide the most structure to learn programming "correctly".

    We could argue for hours about the "best" language as if we were on Stackoverflow all day long.

    I'll say it a little more plainly.

    Some people are programmers learning IM, others are IM'ers learning to program. There is a vast difference.

    At one time I was an IM'er learning to program, much like the OP. Thus I strongly believe my recommendation is of sound judgement. It was my path and I have done well.

    I don't think we need to be argumentative, I am just giving what experiences I had and recommending the same thing to OP.

    You also make some good points in your post regarding the point of view between a "bot" creator and developer.
     
    Last edited: Nov 27, 2015
  19. iglow

    iglow Elite Member

    Joined:
    Feb 20, 2009
    Messages:
    2,080
    Likes Received:
    860
    Home Page:
    go for zennoposter, this stuff is banging
     
  20. Cnotey

    Cnotey Power Member

    Joined:
    Jun 25, 2010
    Messages:
    713
    Likes Received:
    915
    Location:
    Seattle
    Home Page:
    One note that should also be made is that Ubot now supports Python, so you can get the best of both worlds if you choose to learn Python and go that route.