I'm using python only to make bots, it's my work and I'm professional here with rich experience. Main libraries I am using are "grab spider" and "grab", it includes socks5 support (the most popular framework "scrapy" doesn't support socks5 out of box and requires dirty hacks for that), multithreading, xpath expressions to select data, auto form filling as if we are working through browser and other important things for bot class of tasks. If you need fast bots and fast development - python is the best choice in my opinion. You can use any language but python placed very close to bots and data extraction/manipulation, you don't need reinvent the wheel so you can just take workable tools and move on, it's the main advantage of python.
Weak place of python is browser, things like selenium requires too much efforts from your side and works unstable and slow. But 98% of tasks I have solved for my customers does not required browser, I just sniffed get/post requests of browser activity on target website and emulated them in python pretty easily. It works much faster than if you worked from selenium or imacros or any kind of browser based solution. But if you need full browser emulation including mouse emulation, typing text in fields and other human behavior which calls many JS events - you will face problems with python.