Can Python Be used for creating sophiticated SEO toolss??

hey guys i have noted that most of the popular seo tools are programmed in C#..is there some specific reason for this?I have heard that python is efficient programming language..can python be used for creating softwares like senukex or scrapebox?is there some reason why people prefer C# over python??

Re: Can Python Be used for creating sophiticated SEO toolss??

A programming language is all that it really is..just a language. As far as what you CAN do in each language it's pretty much the same with the exception of of how much control you have over lower level programming with things like memory managment, etc.

I would say to learn the basics of computer science and then worry about the language second. Most programmers that code for a career can have multiple languages under their belt depending on what the job requires.

Re: Can Python Be used for creating sophiticated SEO toolss??

Yes, python is an excellent language for creating SEO tools. If you're looking to create tools for your own personal use, Python would be one of my top 2 choices along with Perl. Most likely the reason popular SEO tools are written in C# is because with C#/VB/.NET you can create executable binaries to distribute to the users. Obviously if you're selling a tool, you usually want to keep the source code secret so a binary-only executable is the only feasible means of distribution for something you are offering commercially. You cannot do this in a scripting language like Python. Furthermore, if you're distributing a tool, it is much easier for the tool's users to to just run a windows .exe than to hand them a python script. At the very least the user would need to know how to install python and run the script. It's not hard...but potentially beyond the abilities of many non-programmer users.

Most SEO tasks involve parsing and processing text. These tasks tend to be a lot easier and shorter to code in dynamically typed languages like python. Also, the library support for these types of things is better in Python. So, if you don't need to create redistributable executables then go with Python for sure. If you want to sell an application for users to run on their own pc's then go with a .NET language.

Re: Can Python Be used for creating sophiticated SEO toolss??

Originally Posted by JKasper

Yes, python is an excellent language for creating SEO tools. If you're looking to create tools for your own personal use, Python would be one of my top 2 choices along with Perl. Most likely the reason popular SEO tools are written in C# is because with C#/VB/.NET you can create executable binaries to distribute to the users. Obviously if you're selling a tool, you usually want to keep the source code secret so a binary-only executable is the only feasible means of distribution for something you are offering commercially. You cannot do this in a scripting language like Python. Furthermore, if you're distributing a tool, it is much easier for the tool's users to to just run a windows .exe than to hand them a python script. At the very least the user would need to know how to install python and run the script. It's not hard...but potentially beyond the abilities of many non-programmer users.

Most SEO tasks involve parsing and processing text. These tasks tend to be a lot easier and shorter to code in dynamically typed languages like python. Also, the library support for these types of things is better in Python. So, if you don't need to create redistributable executables then go with Python for sure. If you want to sell an application for users to run on their own pc's then go with a .NET language.

thats some nice onformation..but i heard that now there are some methods to create binaries from python files??u guys heard something about it??

Re: Can Python Be used for creating sophiticated SEO toolss??

Originally Posted by JKasper

Yes, python is an excellent language for creating SEO tools. If you're looking to create tools for your own personal use, Python would be one of my top 2 choices along with Perl. Most likely the reason popular SEO tools are written in C# is because with C#/VB/.NET you can create executable binaries to distribute to the users. Obviously if you're selling a tool, you usually want to keep the source code secret so a binary-only executable is the only feasible means of distribution for something you are offering commercially. You cannot do this in a scripting language like Python. Furthermore, if you're distributing a tool, it is much easier for the tool's users to to just run a windows .exe than to hand them a python script. At the very least the user would need to know how to install python and run the script. It's not hard...but potentially beyond the abilities of many non-programmer users.

Most SEO tasks involve parsing and processing text. These tasks tend to be a lot easier and shorter to code in dynamically typed languages like python. Also, the library support for these types of things is better in Python. So, if you don't need to create redistributable executables then go with Python for sure. If you want to sell an application for users to run on their own pc's then go with a .NET language.

This is not true at all. You can definitely create .exe files with python using py2exe . UBERBLOGCREATOR was created with python. Furthermore, you can use IronPython in Visual Studio or with Sharpdevelop and you have all of the same libraries/features available that are in C#/VB.net .

Long story short, if you want to use Python for creating SEO tools then go with one of the derivatives of it that takes advantage of .Net or JRE (IronPython/Jython) that way you get the benefits of using a familiar language and using both python and Java/Net libraries/ides/3rd party tools.

The Following 3 Users Say Thank You to Gary Becks For This Useful Post:

Re: Can Python Be used for creating sophiticated SEO toolss??

Originally Posted by JKasper

likely the reason popular SEO tools are written in C# is because with C#/VB/.NET you can create executable binaries to distribute to the users. Obviously if you're selling a tool, you usually want to keep the source code secret so a binary-only executable is the only feasible means of distribution for something you are offering commercially. You cannot do this in a scripting language like Python. Furthermore, if you're distributing a tool, it is much easier for the tool's users to to just run a windows .exe than to hand them a python script.

Excellent tools exist to create binary files ready to deploy with the obvious advantage of targeting effortlessly win / mac os x and linux with the same identical python code. Have a look at cxfreeze, for instace and have fun. Plus you can embed python with c# if you feel really creative Only limitation, if we wanna talk automation seriously is speed but .net in this case wouldn't definitely be the right answer: that's why I use c and c++ where being super fast IS an absolutely critical factor that's rarely the case with SEO and IM bots in general. With the right frameworks it's just a matter of porting the same python logic verbatim to c++ (that's more or less adding semicolons and changing a few statements...) and hit the magic compile button. Taking this latter approach: end of framework compatibility issues with the added benefit of cross compiling benefits and end of lackluster performances, VM or JIT bs. Of course the drawback is that the learning curve might be a bit steeper than .net so that might not be for all, but definitely it's not a matter of technical limitations. Pretty much all the opposite.

Re: Can Python Be used for creating sophiticated SEO toolss??

Originally Posted by Gary Becks

This is not true at all. You can definitely create .exe files with python using py2exe . UBERBLOGCREATOR was created with python. Furthermore, you can use IronPython in Visual Studio or with Sharpdevelop and you have all of the same libraries/features available that are in C#/VB.net .

Long story short, if you want to use Python for creating SEO tools then go with one of the derivatives of it that takes advantage of .Net or JRE (IronPython/Jython) that way you get the benefits of using a familiar language and using both python and Java/Net libraries/ides/3rd party tools.

The Following User Says Thank You to olystyle For This Useful Post:

Re: Can Python Be used for creating sophiticated SEO toolss??

I've never tried to make a python executable but my understanding is that in most of these cases the binary format is mostly just a binary version of the abstract syntax tree of the script with all variable and function names in-tact, and that this is trivial to decompile back into the almost original python source, so those methods are not likely to keep the source-code very secure. You can use jython to make a java jar file, or iron python to make a .net assembly. It's been a long time since I looked into either of these, but years ago anyway, hardly any of the popular python libraries were supported by jython or Iron Python. IMHO, one of the best reasons to use python is for the rich selection of open-source libraries that are out there, which it seemed like you had to give up to use Jython or Iron Python.

Re: Can Python Be used for creating sophiticated SEO toolss??

IMHO, one of the best reasons to use python is for the rich selection of open-source libraries that are out there, which it seemed like you had to give up to use Jython or Iron Python.

There's very little missing with jython and ironpython these days, they're both nearly complete kit and pure-python fallback has become idiomatic for most pypi packages. If I need to put a GUI on something I've written in python, SharpDevelop is a doddle, compiles to .exe and works nicely with wix.

The Following User Says Thank You to webmasterbd For This Useful Post:

Re: Can Python Be used for creating sophiticated SEO toolss??

Originally Posted by santhej

guys what about programming GUI windows in python??is it realy easy??or should options like iron python be considered?

You can try wxPython(cross-platform toolkit), it's great for GUI programming. But if you only need to program for yourself, I don't think you really need a GUI. For SEO tools, all you really need is a good use of threading and urllib2 module.

Re: Can Python Be used for creating sophiticated SEO toolss??

AFAIK C# would be better for a few reasons. Python is good too. I just don't think it has an equivalent of .NET's WebDriver/MSHTML component so to handle JavaScript/AJAX pages you'd need to find some solution of integrating it with an actual web browser.

Also, Python threads are pretty bad. Very poor performance. There was a Python variant that had better threads but can't remember it's name. something that had what they called micro-threads.

Re: Can Python Be used for creating sophiticated SEO toolss??

Originally Posted by PappySmurph

AFAIK C# would be better for a few reasons. Python is good too. I just don't think it has an equivalent of .NET's WebDriver/MSHTML component so to handle JavaScript/AJAX pages you'd need to find some solution of integrating it with an actual web browser.

WTH are you saying, son... There are SEVERAL bindings to webkit (qt, gtk) in ADDITION to the ActiveX IE component readily available by means of the right extension for win and even bindings to gecko (firefox). All of this stuff clearly comes with FULL DOM/ajax capabilities. If you're not satisfied with the pretty good python wrapper against pthreads you can always write your own library in c and make it a python module, but I can guarantee you'll never need it. From a guy who wrote assembly routines to empty manually the stack from the threads of his apps because I wasn't entirely satisfied with what valgrind reported in the default implementation of mallc / free...

Re: Can Python Be used for creating sophiticated SEO toolss??

Originally Posted by sirgold

WTH are you saying, son... There are SEVERAL bindings to webkit (qt, gtk) in ADDITION to the ActiveX IE component readily available by means of the right extension for win and even bindings to gecko (firefox). All of this stuff clearly comes with FULL DOM/ajax capabilities. If you're not satisfied with the pretty good python wrapper against pthreads you can always write your own library in c and make it a python module, but I can guarantee you'll never need it. From a guy who wrote assembly routines to empty manually the stack from the thread because I wasn't entirely satisfied with what valgrind reported in the default implementation of mallc / free...

Links for info on the browser bindings please.

Python threads suck. Period. Is because of the GIL. There are even some video presentations on this topic where it is explained how bad it is. It can work well depending on what your threads do or it can double the execution time instead of improving it. Things are even worse on multi-CPU systems.

Python version with micro-threads i was talking about is called Python Stackless - google it.

Now, about WebDriver and bindings. You can use Python with Selenium. You can use other bindings. That is not the same as you do in C# and WebDriver component. Personally I did not found them as elegant and well integrated as C#'s way but that would be a very subjective thing. Since both are from Microsoft they are integrated more elegantly.

You know, you could have just pointed out what you don't agree with instead of neg reping me. But then again, you probably can't so just did what you could. If you're smart or know something help everybody by offering information don't act smartas by droping a neg rep. That doesn't help anybody nor does it add to the discussion.

The Following User Says Thank You to sirgold For This Useful Post:

Re: Can Python Be used for creating sophiticated SEO toolss??

Originally Posted by PappySmurph

AFAIK C# would be better for a few reasons. Python is good too. I just don't think it has an equivalent of .NET's WebDriver/MSHTML component so to handle JavaScript/AJAX pages you'd need to find some solution of integrating it with an actual web browser.

Also, Python threads are pretty bad. Very poor performance. There was a Python variant that had better threads but can't remember it's name. something that had what they called micro-threads.

Again, IronPython is the solution, gives you access to all of the .Net libraries plus most of the standard python ones. There's also no GIL as you are using .Net thread classes. In the end it's like you are coding in C# but with Python syntax minus a few C# specific features and a minor difference in performance.

Re: Can Python Be used for creating sophiticated SEO toolss??

The real challenge of programming for websites resides in understanding web protocols, mimicking headers, using proxies, implementing APIs of the captcha breaking companies, etc. Most programming languages can do it, however some languages are more documented than others as far as tutorials.

Rapid application development should be your primary concern, which means program in whatever language you know the best. If you're programming for yourself, consider pre-made programs like zenno, ubot, imacros, etc. If you want to resell it, use whatever programming language you enjoy the most.

My preference is Microsoft Visual Studio 2010 express. It is entirely free and not gimped in any way. Just start a new project, throw a webbrowser control on it and voila, you've got a fully functional microsoft internet explorer browser embedded inside your program. You can programmatically navigate it, interact with the results, parse them, etc. You can even scrape ajax content because you have full access to all the browser content, even if its rendered by javascript/ajax. You can then build executables and resell them if you wish.

Re: Can Python Be used for creating sophiticated SEO toolss??

Web browser control makes it really easy to manipulate forms, buttons, or rather webpages in general, which is essential for link building softwares

I didn't say other languages don't have threads or web requests. I personally use Delphi with threads and sockets. My points is, that .NET languages have huge communities, great support, and are generally easier to use. Also even with coding android apps, web forms can be manipulated, pretty easily, using the browser view.

Re: Can Python Be used for creating sophiticated SEO toolss??

Originally Posted by DarkPixel

My points is, that .NET languages have huge communities, great support, and are generally easier to use. Also even with coding android apps, web forms can be manipulated, pretty easily, using the browser view.

Re: Can Python Be used for creating sophiticated SEO toolss??

I've been developing a lot of my own SEO tools and bots written in Java.

Rationale behind this decision was:
- It had to be cross-platform, I develop on a Mac and all my servers are Linux
- All the tools had to be command-line interface because they're being run remotely on cheap Linux VPS's
- Plenty tools/libraries available to speed up development, Apache HttpClient, Jsoup, Selenium .. basically everything I needed
- Last but not least, I'm not selling these tools to newbies (so rule out Windows, and GUI)

All the code I write gets compiled/packaged into a JAR file containing all its dependencies. I can literally spin-up a VPS and script the installation of Java and run my code, when the 'job' or 'task' is complete I can shut that VPS down, at the moment I'm paying $0.003 per hour of compute time I actually use (Amazon EC2 Spot Instances).

A couple of weeks back I started to clean-up and open-source my code, if you are familiar with Java its easy to tinker with it: http://ikstob.com

Re: Can Python Be used for creating sophiticated SEO toolss??

Re: Can Python Be used for creating sophiticated SEO toolss??

I've never tried to make a python executable but my understanding is that in most of these cases the binary format is mostly just a binary version of the abstract syntax tree of the script with all variable and function names in-tact, and that this is trivial to decompile back into the almost original python source, so those methods are not likely to keep the source-code very secure. You can use jython to make a java jar file, or iron python to make a .net assembly. It's been a long time since I looked into either of these, but years ago anyway, hardly any of the popular python libraries were supported by jython or Iron Python. IMHO, one of the best reasons to use python is for the rich selection of open-source libraries that are out there, which it seemed like you had to give up to use Jython or Iron Python.