Простой способ подделать User Agent будет использовать FirefoxProfile()
следующим образом:
from selenium import webdriver
from fake_useragent import UserAgent
useragent = UserAgent()
profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", useragent.random)
driver = webdriver.Firefox(firefox_profile=profile, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
driver.get("http://www.whatsmyua.info/")
Результат трех последовательных выполнений следующий:
[119 ]Первое выполнение:
Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36
Второе выполнение:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36
Третье выполнение:
[ 113]Вы в значительной степени вычислены, как сделать это. Основная проблема - Вы, обычно не имеют доступа к размеру загруженного файла, пока это не сделало загрузку.
Существуют обходные решения для этого: Позволяя APC, Вы получить доступ к этой информации, если Вы включаете поле под названием "APC_UPLOAD_PROGRESS" и используете apc_fetch () для получения записи кэша с состоянием.
Существует также плагин, названный uploadprogress, но он очень хорошо не документируется и не работает над Windows (в последний раз, я проверил так или иначе).
Альтернатива должна использовать Flash для того, чтобы сделать его. См. сценарии как FancyUpload.
Прежде чем APC пришел, я должен был записать сценарий CGI в C, который записал информацию в текстовый файл. APC походит на намного лучший способ сделать это теперь все же.
Надеюсь, это поможет.
В чистом PHP Вы корректны: это не возможно.
Если Вы AJAX-ify это, то Вы могли сделать то, что Вы описываете. Единственные метры прогресса, которые я когда-либо видел, находятся в JavaScript или Flash, хотя я предполагаю, что Silverlight могла сделать это также.
До сих пор наиболее распространенным способом выполнения этого является SWFUpload: http://www.swfupload.org/
Однако это возможно с чистым PHP, просто очень трудно и очень экспериментально. Я буду видеть, могу ли я найти ссылку.
Править: Согласно комментариям к php.net, с 5,2 существует рычаг для обработки прогресса загрузки. http://us.php.net/features.file-upload#71564
Больше объяснения:
Пример Rasmus:
Я рекомендовал бы смотреть на SWFUpload для выполнения то, что Вы хотите. Это довольно гибко и поддерживает организацию очередей файлов, таким образом, Вы могли даже обработать многофайловые загрузки.
По-моему, лучшее / самое легкое решение состоит в том, чтобы создать маленький виджет флэш-памяти, который состоит из кнопки 'Upload' и индикатора выполнения. Flash дает Вам очень подробную обратную связь на том, сколько данных было загружено до сих пор, и можно создать хороший индикатор выполнения на основе этого. Не требует неэффективного опроса сервера и на самом деле не требует никаких изменений вообще в Вашем серверном коде. Google для 'загрузчика флэш-памяти' и Вы найдете, что многие люди уже записали эти виджеты и рады продать их Вам для маркера.
Вы определенно захотите пойти с FancyUpload digitgerald. Это - Mootools и swfuplaod, базирующийся, и это щеголяет хорошей очередью состояниями, прогрессом, ЭТА и т.д. Это - действительно slickest метод, я видел загрузку файлов. Для моего персонального варианта использования ivé использовал его, чтобы позволить клиенту выбрать 1,2 ГБ файлов PDF и загрузить их. Более новые переименованы и присвоили версию автоматически, то же пропускается и т.д.
"Старая школа", но PHP + метод Perl: http://www.raditha.com/php/progress.php