Скрипт, загружающий файл из filesonic

#python #scripting

#python #создание сценариев

Вопрос:

Не мог бы кто-нибудь, пожалуйста, посоветовать мне, как я мог бы написать скрипт на Python для выполнения этих действий?

  1. Измените мой IP-адрес на какой-нибудь случайный прокси-адрес.
  2. Загрузите и отобразите изображение captcha и покажите мне подсказку, где я могу написать символы captcha.
  3. Загрузите основной файл.

Скрипт должен иметь один входной параметр (адрес похож на один из этих):

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. Спасибо, что посоветовали мне язык и модули. Я попытаюсь реализовать это, а затем задам более точный вопрос.