本文整理汇总了Python中cachecontrol.CacheControl.head方法的典型用法代码示例。如果您正苦于以下问题:Python CacheControl.head方法的具体用法?Python CacheControl.head怎么用?Python CacheControl.head使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cachecontrol.CacheControl
的用法示例。
在下文中一共展示了CacheControl.head方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Request
# 需要导入模块: from cachecontrol import CacheControl [as 别名]
# 或者: from cachecontrol.CacheControl import head [as 别名]
def Request(
url,
method="GET",
headers=DEFAULT_HEADERS,
additional_headers=None,
data=None,
session=None,
allow_redirects=True,
timeout=10,
load_cookies=True,
mobile=False
):
if additional_headers:
headers.update(additional_headers)
try:
session = CacheControl(session)
except Exception as e:
pass
# Error("Init web cache failed!!!", e)
if mobile:
headers["User-Agents"] = MOBILE_IOS_AGENTS
xbmc.log("Requests headers: {0}".format(json.dumps(headers)), 1)
if session:
session.headers.update(headers)
domain = re.search("https*\://(.+?)($|/)", url).group(1)
if load_cookies:
LoadCookies(session, cookies_name=domain)
if data:
response = session.post(url, data=data, allow_redirects=allow_redirects, timeout=timeout, verify=False)
else:
if method == "HEAD":
response = session.head(url, allow_redirects=allow_redirects, timeout=timeout, verify=False)
else:
response = session.get(url, allow_redirects=allow_redirects, timeout=timeout, verify=False)
response.encoding = "utf8"
SaveCookies(session, cookies_name=domain)
return response
else:
if method == "HEAD":
return requests.head(url, headers=headers, allow_redirects=allow_redirects, timeout=timeout, verify=False)
else:
return requests.get(url, headers=headers, allow_redirects=allow_redirects, timeout=timeout, verify=False)
示例2: Imdb
# 需要导入模块: from cachecontrol import CacheControl [as 别名]
# 或者: from cachecontrol.CacheControl import head [as 别名]
class Imdb(object):
def __init__(self, api_key=None, locale=None, anonymize=None,
exclude_episodes=None, user_agent=None, cache=None,
proxy_uri=None, verify_ssl=None):
self.api_key = api_key or SHA1_KEY
self.timestamp = time.mktime(datetime.date.today().timetuple())
self.user_agent = user_agent or random.choice(USER_AGENTS)
self.locale = locale or 'en_US'
self.exclude_episodes = True if exclude_episodes is True else False
self.caching_enabled = True if cache is True else False
self.proxy_uri = proxy_uri or DEFAULT_PROXY_URI
self.anonymize = False or anonymize
self.verify_ssl = True or verify_ssl
self.session = requests
if self.caching_enabled:
self.session = CacheControl(
requests.Session(), cache=FileCache('.imdbpie_cache')
)
def get_person_by_id(self, imdb_id):
url = self._build_url('/name/maindetails', {'nconst': imdb_id})
response = self._get(url)
if response is None or self._is_redirection_result(response):
return None
person = Person(response["data"])
return person
def get_title_by_id(self, imdb_id):
url = self._build_url('/title/maindetails', {'tconst': imdb_id})
response = self._get(url)
if response is None or self._is_redirection_result(response):
return None
# get the full cast information, add key if not present
response['data']['credits'] = self._get_credits_data(imdb_id)
response['data']['plots'] = self.get_title_plots(imdb_id)
if (
self.exclude_episodes is True and
response['data'].get('type') == 'tv_episode'
):
return None
title = Title(data=response['data'])
return title
def get_title_plots(self, imdb_id):
url = self._build_url('/title/plot', {'tconst': imdb_id})
response = self._get(url)
if response['data']['tconst'] != imdb_id: # pragma: no cover
return []
plots = response['data'].get('plots', [])
return [plot.get('text') for plot in plots]
def title_exists(self, imdb_id):
page_url = 'http://www.imdb.com/title/{0}/'.format(imdb_id)
if self.anonymize is True:
page_url = self.proxy_uri.format(quote(page_url))
response = self.session.head(page_url)
if response.status_code == httplib.OK:
return True
elif response.status_code == httplib.NOT_FOUND:
return False
elif response.status_code == httplib.MOVED_PERMANENTLY:
# redirection result
return False
else:
response.raise_for_status()
def search_for_person(self, name):
search_params = {
'json': '1',
'nr': 1,
'nn': 'on',
'q': name
}
query_params = urlencode(search_params)
search_results = self._get(
'http://www.imdb.com/xml/find?{0}'.format(query_params))
target_result_keys = (
'name_popular', 'name_exact', 'name_approx', 'name_substring')
person_results = []
html_unescaped = html_parser.HTMLParser().unescape
# Loop through all search_results and build a list
# with popular matches first
for key in target_result_keys:
#.........这里部分代码省略.........