#python #scripting
#python #создание сценариев
Вопрос:
Не мог бы кто-нибудь, пожалуйста, посоветовать мне, как я мог бы написать скрипт на Python для выполнения этих действий?
- Измените мой IP-адрес на какой-нибудь случайный прокси-адрес.
- Загрузите и отобразите изображение captcha и покажите мне подсказку, где я могу написать символы captcha.
- Загрузите основной файл.
Скрипт должен иметь один входной параметр (адрес похож на один из этих):
http://www.filesonic.com/file/212720521/Ubuntu.11.04.part1.rar
http://www.filesonic.com/file/212720541/Ubuntu.11.04.part2.rar
Он будет вызван дважды следующим образом:
python dlsonic.py http://www.filesonic.com/file/212720521/Ubuntu.11.04.part1.rar
python dlsonic.py http://www.filesonic.com/file/212720541/Ubuntu.11.04.part2.rar
Комментарии:
1. Используйте Python, а не bash, поскольку bash не предназначен для выполнения подобных задач.
wget
вы можете загружать файлы, но вы не меняете свой IP-адрес на прокси-сервер. Это противоречит их адресу.2. Спасибо, я изменю и повторно помечу вопрос. Не могли бы вы указать мне нужные библиотеки (модули) python?
3. Смотрите мой ответ. Проблема с CAPTCHA заключается в том, что, как только вы ее видите, она меняется при отправке. Вам придется использовать Webkit или какой-либо другой метод, чтобы буквально «перейти» на веб-сайт и выполнить все это. Вы уверены, что вам нужно идти на все эти хлопоты только для загрузки Ubuntu 😉
4. Совет — это одно, но это действительно звучит так, как будто вы пытаетесь заставить кого-то просто написать все это за вас.
5. @Zaphod42 Мне жаль. Я попытаюсь закодировать его, а затем спрошу. Blender направил меня в правильном направлении.
Ответ №1:
Вот некоторые базовые Python для начала:
import urllib2
response = urllib2.urlopen('http://www.example.com/')
html = response.read() # This is what is read from the file. In your case,
# it'll only read the contents of the webpage.
Чтобы изменить свой IP-адрес, вы можете использовать некоторые команды Linux для выполнения этого (при условии, что здесь вы используете ethernet):
ifconfig eth0 192.168.1.5 netmask 255.255.255.0 up
ifconfig eth0
И с помощью Python вы можете запускать их с помощью os.system()
:
import os
os.system('ifconfig eth0 192.168.1.5 netmask 255.255.255.0 up')
os.system('ifconfig eth0')
И для обработки аргументов командной строки, таких как python foo.py bar foo bar bar
:
import sys
print sys.argv
Что касается работы с CAPTCHA, это будет непросто. Вы уверены, что не можете просто сделать это вручную?
Комментарии:
1. Этот скрипт должен уметь анализировать HTML и находить ссылку для captcha и файла. Когда captcha будет загружена, я буду отображать ее следующим образом
import Image import os im = Image.open("captcha.jpg") im.show()
2. Он должен не только изменить локальный IP-адрес, но и загрузить файл через какой-нибудь случайный прокси.
3. В этом проблема. Капчи генерируются при создании сеанса. Как только вы загружаете изображение с помощью Python, ваш сеанс закрывается, и CAPTCHA становится недействительной. Вам пришлось бы действовать как браузер и держать сеанс открытым , пока вы загружаете изображение и отображаете его. Это будет неприятно…
4. Спасибо, что посоветовали мне язык и модули. Я попытаюсь реализовать это, а затем задам более точный вопрос.