قائمة مرحبا
لدي مشكلة فقدان التبعيات لدعم SOCKS. مع طلبات الإصدار 2.11 من الوحدة النمطية ،
ولكن مع إصدار الوحدة النمطية للطلبات 2.10 ، تعمل وحدة الطلبات بشكل جيد
بيئتي:
أعلن -x VIRTUAL_ENV = "/ home / hadn / python3"
إعلان -x VTE_VERSION = "3803"
إعلان -x WINDOWID = "33554439"
قم بالإعلان عن -x WINDOWPATH = "1"
أعلن -x XAUTHORITY = "/ run / gdm / auth-for-hadn-0O4FTR / database"
أعلن -x XDG_CURRENT_DESKTOP = "جنوم- كلاسيكي: جنوم "
أعلن -x XDG_MENU_PREFIX = "جنوم-"
أعلن -x XDG_RUNTIME_DIR = "/ run / user / 1000"
أعلن -x XDG_SEAT = "seat0"
أعلن -x XDG_SESSION_DESKTOP = "جنوم-كلاسيك"
أعلن -x XDG_SESSION_ID = "2"
أعلن -x XDG_VTNR = "1"
أعلن -x XMODIFIERS = "@ im = ibus"
إعلان -x _system_arch = "x86_64"
أعلن -x _system_name = "CentOS"
أعلن -x _system_type = "Linux"
أعلن -x _system_version = "7"
أعلن -x all_proxy = " الجوارب: //proxy.hcm.fpt.vn : 80 /"
أعلن -x ftp_proxy = " http://proxy.hcm.fpt.vn : 80 /"
أعلن -x http_proxy = " http://proxy.hcm.fpt.vn : 80 /"
أعلن -x https_proxy = " http://proxy.hcm.fpt.vn : 80 /"
(python3) [ hadn @ rad-hadn4 ~] $ /home/hadn/Laravel/learning_bootstrap_v4/film/film_le.sh
Traceback (آخر مكالمة أخيرة):
ملف "/home/hadn/Laravel/learning_bootstrap_v4/film/film_le_crawler_page_1.py" ، سطر 24 ، في
html_content = session.get (url)
ملف "/home/hadn/python3/lib/python3.4/site-packages/requests/sessions.py" ، السطر 483 ، في get
إرجاع self.request ('GET' ، url ، * _kwargs)
ملف "/home/hadn/python3/lib/python3.4/site-packages/requests/sessions.py" ، السطر 471 ، في الطلب
Resp = self.send (الإعدادية ، * _send_kwargs)
ملف "/home/hadn/python3/lib/python3.4/site-packages/requests/sessions.py" ، السطر 581 ، في الإرسال
r = adapter.send (طلب ، * _kwargs)
ملف "/home/hadn/python3/lib/python3.4/site-packages/requests/adapters.py" ، السطر 384 ، في الإرسال
conn = self.get_connection (request.url ، وكلاء)
ملف "/home/hadn/python3/lib/python3.4/site-packages/requests/adapters.py" ، السطر 287 ، في get_connection
proxy_manager = self.proxy_manager_for (وكيل)
ملف "/home/hadn/python3/lib/python3.4/site-packages/requests/adapters.py" ، السطر 183 ، في proxy_manager_for
* _proxy_kwargs
ملف "/home/hadn/python3/lib/python3.4/site-packages/requests/adapters.py" ، السطر 43 ، في SOCKSProxyManager
رفع InvalidSchema ("التبعيات المفقودة لدعم SOCKS.")
request.exceptions.InvalidSchema: تبعيات مفقودة لدعم SOCKS.
$ pip install requests[socks]
المشكلة المحددة هنا هي أننا في 2.11 بدأنا في دعم all_proxy
، والذي قمت بإعداده كوكيل SOCKS. هذا يعني أننا سنحاول استخدام بروكسي SOCKS ونفشل.
Lukasakennethreitz هل يمكنني تعطيل بروكسي SOCKS ؟؟؟
@ alochym01 إذا كنت لا تريد ذلك ، فلماذا يتم وضعه في بيئتك؟ بغض النظر ، إذا كنت تستخدم جلسة مع trust_env=False
فلن تحدث هذه المشكلة مرة أخرى ، على الرغم من أنك ستفقد وكيل HTTP الخاص بالبيئة.
ومع ذلك ، يبدو أن هناك خطأ هنا: ستفضل الطلبات all_proxy
على الوكيل الخاص بالمخطط. أعتقد أن هذه فكرة سيئة. @ sigmavirus24 ، هل يجب علينا إعادة ترتيب ذلك؟
Lukasa لذا ، كما أفهمها ، all_proxy
هو ما يجب استخدامه إذا لم يتم تعيين http(s)_proxy
. وبشكل عام ، يجب استخدامه إذا لم يتم ضبط <protocol>_proxy
. بناءً على هذا الفهم (وعلى افتراض أنني على صواب) ، نعم ، يجب علينا بالتأكيد إعادة ترتيب ذلك. دعنا نبلغ عن خطأ جديد لذلك.
@ alochym01 يبدو أن هناك خيارًا آخر وهو استخدام proxies={'all': None}
.
Lukasa proxies = {'all': None} لا يعمل لأن الشبكة يجب أن تمر عبر الوكيل ، لذلك أرى أنك فتحت الإصدار الجديد :)
فلنتابع الإصدار الجديد: +1:
التعليق الأكثر فائدة
$ pip install requests[socks]