[common] allow overriding 'user-agent' when 'browser' is used (#7647)
This commit is contained in:
@@ -673,11 +673,6 @@ Description
|
|||||||
Setting this value to ``"browser"`` will try to automatically detect
|
Setting this value to ``"browser"`` will try to automatically detect
|
||||||
and use the ``User-Agent`` header of the system's default browser.
|
and use the ``User-Agent`` header of the system's default browser.
|
||||||
|
|
||||||
Note:
|
|
||||||
This option has *no* effect if
|
|
||||||
`extractor.browser <extractor.*.browser_>`__
|
|
||||||
is enabled.
|
|
||||||
|
|
||||||
|
|
||||||
extractor.*.browser
|
extractor.*.browser
|
||||||
-------------------
|
-------------------
|
||||||
|
|||||||
@@ -419,15 +419,7 @@ class Extractor():
|
|||||||
ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1)
|
ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1)
|
||||||
ssl_ciphers = SSL_CIPHERS[browser]
|
ssl_ciphers = SSL_CIPHERS[browser]
|
||||||
else:
|
else:
|
||||||
useragent = self.config("user-agent")
|
headers["User-Agent"] = self.useragent
|
||||||
if useragent is None or useragent == "auto":
|
|
||||||
useragent = self.useragent
|
|
||||||
elif useragent == "browser":
|
|
||||||
useragent = _browser_useragent()
|
|
||||||
elif self.useragent is not Extractor.useragent and \
|
|
||||||
useragent is config.get(("extractor",), "user-agent"):
|
|
||||||
useragent = self.useragent
|
|
||||||
headers["User-Agent"] = useragent
|
|
||||||
headers["Accept"] = "*/*"
|
headers["Accept"] = "*/*"
|
||||||
headers["Accept-Language"] = "en-US,en;q=0.5"
|
headers["Accept-Language"] = "en-US,en;q=0.5"
|
||||||
|
|
||||||
@@ -449,6 +441,15 @@ class Extractor():
|
|||||||
elif self.root:
|
elif self.root:
|
||||||
headers["Referer"] = self.root + "/"
|
headers["Referer"] = self.root + "/"
|
||||||
|
|
||||||
|
custom_ua = self.config("user-agent")
|
||||||
|
if custom_ua is None or custom_ua == "auto":
|
||||||
|
pass
|
||||||
|
elif custom_ua == "browser":
|
||||||
|
headers["User-Agent"] = _browser_useragent()
|
||||||
|
elif self.useragent is Extractor.useragent or \
|
||||||
|
custom_ua is not config.get(("extractor",), "user-agent"):
|
||||||
|
headers["User-Agent"] = custom_ua
|
||||||
|
|
||||||
custom_headers = self.config("headers")
|
custom_headers = self.config("headers")
|
||||||
if custom_headers:
|
if custom_headers:
|
||||||
if isinstance(custom_headers, str):
|
if isinstance(custom_headers, str):
|
||||||
|
|||||||
Reference in New Issue
Block a user