def GET(target, post=None, method='post', headersl=None): target = target.replace('//page', '/page') #print target try: cookiejar = cookielib.MozillaCookieJar() if Addon.getSetting('antizapret') == 'true': import antizapret urlOpener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookiejar), antizapret.AntizapretProxyHandler()) else: urlOpener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookiejar)) urllib2.install_opener(urlOpener) headers_ = headersl if headers_ == None: if method == 'post': headers_ = headers else: headers_ = headers2 if method == 'post': request = urllib2.Request(url=target, data=post, headers=headers_) else: request = urllib2.Request(url=target, data=post, headers=headers_) request.get_method = lambda: 'GET' url = urlOpener.open(request) http = url.read() return http except Exception, e: xbmc.log('[%s]: GET EXCEPT [%s]' % (addon_id, e), 4) showMessage('HTTP ERROR', e, 5000)
def auth(cookie_jar): username = __settings__.getSetting('username') password = __settings__.getSetting('password') if username == "" or password == "": __settings__.openSettings() username = __settings__.getSetting('username') password = __settings__.getSetting('password') if username == "" or password == "": alert('Вы не авторизованы', 'Укажите логин и пароль в настройках приложения') print('Пользователь не аторизован. Выход.') sys.exit() req_data = { 'login_name': username, 'login_password': password, 'login': '******' } req_url = site_url + '/index.php' headers = { "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3", "Content-Type": "application/x-www-form-urlencoded", "Host": site_url.split('/')[2], "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.8,bg;q=0.6,it;q=0.4,ru;q=0.2,uk;q=0.2", "Accept-Encoding": "windows-1251,utf-8;q=0.7,*;q=0.7", "Referer": site_url + "/index.php" } if antizapret_enabled: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(cookie_jar), az.AntizapretProxyHandler()) else: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(cookie_jar)) conn = urllib_request.Request( req_url, urllib_parse.urlencode(req_data).encode('utf-8'), headers) connection = opener.open(conn) html = connection.read() html = html.decode('utf-8') connection.close() if 'Ошибка авторизации' in html: alert('Проверьте логин и пароль', 'Неверный логин либо пароль') __settings__.openSettings() sys.exit() return cookie_jar
def add_bookmark(bookmark_id): cookie_jar = auth(cookielib.CookieJar()) fav_url = site_url + '/engine/ajax/favorites.php?fav_id=' + bookmark_id + '&action=plus&skin=Baskino' if antizapret_enabled: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(cookie_jar), az.AntizapretProxyHandler()) else: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(cookie_jar)) connection = opener.open(fav_url) connection.close() notificator('Добавление закладки', 'Закладка добавлена', 3000)
def remove_bookmark(bookmark_id): cookie_jar = auth(cookielib.CookieJar()) fav_url = site_url + '/engine/ajax/favorites.php?fav_id=' + bookmark_id + '&action=minus&skin=Baskino' if antizapret_enabled: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(cookie_jar), az.AntizapretProxyHandler()) else: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(cookie_jar)) connection = opener.open(fav_url) connection.close() notificator('Удаление закладки', 'Закладка удалена', 3000) xbmc.executebuiltin('Container.Refresh()')
def build_connection(self, cookiejar=None): if cookiejar is None: cookiejar = cookielib.CookieJar() handlers = [urllib2.HTTPCookieProcessor(cookiejar)] if not (self.proxy is None): self.proxy.build_handlers(handlers) elif self.use_antizapret: handlers.append(antizapret.AntizapretProxyHandler()) opener = urllib2.build_opener(*handlers) opener.addheaders = [( 'User-Agent', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C)' ), ('Accept', '*/*'), ('Accept-Language', 'ru-RU')] return opener
def get_html(web_url): cookie_jar = cookielib.CookieJar() if mode == 'FAVS': cookie_jar = auth(cookie_jar) if antizapret_enabled: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(cookie_jar), az.AntizapretProxyHandler()) else: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(cookie_jar)) opener.addheaders = [("User-Agent", USER_AGENT)] connection = opener.open(web_url) html = connection.read() connection.close() return html.decode('utf-8')
def post_request(page_url, req_data=None, headers=None): if headers is None: headers = {} if antizapret_enabled: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(), az.AntizapretProxyHandler()) else: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor()) opener.addheaders = [("User-Agent", USER_AGENT)] conn = urllib_request.Request( page_url, urllib_parse.urlencode(req_data).encode('utf-8'), headers) connection = opener.open(conn) html = connection.read() return html
def get_html_with_referer(page_url, referer): cookie_jar = cookielib.CookieJar() if mode == 'FAVS': cookie_jar = auth(cookie_jar) if antizapret_enabled: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(cookie_jar), az.AntizapretProxyHandler()) else: opener = urllib_request.build_opener( urllib_request.HTTPCookieProcessor(cookie_jar)) if referer is not None: opener.addheaders = [("Referer", referer)] connection = opener.open(page_url) html = connection.read() connection.close() return html.decode('utf-8')
if get_redirect == True: html = f.geturl() else: html = f.read() return html #------------------------------------------------------------------------------- # get cookies from last session import antizapret cj = cookielib.FileCookieJar(fcookies) hr = urllib2.HTTPCookieProcessor(cj) if __settings__.getSetting("immunicity") == "1": opener = urllib2.build_opener(antizapret.AntizapretProxyHandler(), hr) print "Immunicity" elif __settings__.getSetting("immunicity") == "2": proxy_support = urllib2.ProxyHandler( {"http": "http://" + __settings__.getSetting("Proxy")}) opener = urllib2.build_opener(proxy_support, hr) print "Proxy " + __settings__.getSetting("Proxy") else: opener = urllib2.build_opener(hr) print "NONE Proxy" urllib2.install_opener(opener) #----------- LOGIN to lostfilm.tv ---------------------------------------------- #-- step 1 url1 = 'http://login1.bogi.ru/login.php?referer=http%3A%2F%2Fwww.lostfilm.tv%2F'
def open(self, url, language='en', post_data=None, get_data=None, headers=None, proxy_url=None, charset='utf8'): """ Opens a connection to a webpage and saves its HTML content in ``self.content`` Args: url (str): The URL to open language (str): The language code for the ``Content-Language`` header post_data (dict): POST data for the request get_data (dict): GET data for the request """ if not post_data: post_data = {} if get_data: url += '?' + urlencode(get_data) log.debug("Opening URL: %s" % repr(url)) result = False data = urlencode(post_data) if len(post_data) > 0 else None req = urllib2.Request(url, data) self._read_cookies(url) log.debug("Cookies for %s: %s" % (repr(url), repr(self._cookies))) # Parsing proxy information proxy = { 'enabled': get_setting("proxy_enabled", bool), 'use_type': get_setting("proxy_use_type", int), 'type': proxy_types[0], 'host': get_setting("proxy_host", unicode), 'port': get_setting("proxy_port", int), 'login': get_setting("proxy_login", unicode), 'password': get_setting("proxy_password", unicode), } try: proxy['type'] = proxy_types[get_setting("proxy_type", int)] except: pass handlers = [urllib2.HTTPCookieProcessor(self._cookies)] if get_setting("use_public_dns", bool): handlers.append(MyHTTPHandler) if proxy['enabled']: if proxy['use_type'] == 0 and proxy_url: log.debug("Setting proxy from Elementum: %s" % (proxy_url)) handlers.append(parse_proxy_url(proxy_url)) elif proxy['use_type'] == 1: log.debug("Setting proxy with custom settings: %s" % (repr(proxy))) handlers.append( SocksiPyHandler(proxytype=proxy['type'], proxyaddr=proxy['host'], proxyport=int(proxy['port']), username=proxy['login'], password=proxy['password'], rdns=True)) elif proxy['use_type'] == 2: try: handlers.append(antizapret.AntizapretProxyHandler()) except Exception as e: log.info("Could not create antizapret configuration: %s" % (e)) opener = urllib2.build_opener(*handlers) req.add_header('User-Agent', self.user_agent) req.add_header('Content-Language', language) req.add_header("Accept-Encoding", "gzip") req.add_header("Origin", url) req.add_header("Referer", url) if headers: for key, value in headers.iteritems(): if value: req.add_header(key, value) else: del req.headers[key.capitalize()] if self.token: req.add_header("Authorization", self.token) try: self._good_spider() with closing(opener.open(req)) as response: self.headers = response.headers self._save_cookies() if response.headers.get("Content-Encoding", "") == "gzip": import zlib self.content = zlib.decompressobj( 16 + zlib.MAX_WBITS).decompress(response.read()) else: self.content = response.read() charset = response.headers.getparam('charset') if not charset: match = re.search( """<meta(?!\s*(?:name|value)\s*=)[^>]*?charset\s*=[\s"']*([^\s"'/>]*)""", self.content) if match: charset = match.group(1) # We try to remove non-utf chars. Should we? if (charset and charset.lower() == 'utf-8') or charset is None: charset = 'utf-8-sig' # Changing to utf-8-sig to remove BOM if found on decode from utf-8 if charset: log.debug('Decoding charset from %s for %s' % (charset, repr(url))) self.content = self.content.decode(charset, 'replace') self.status = response.getcode() result = True except urllib2.HTTPError as e: self.status = e.code log.warning("Status for %s : %s" % (repr(url), str(self.status))) if e.code == 403 or e.code == 503: log.warning("CloudFlared at %s, try enabling CloudHole" % url) except urllib2.URLError as e: self.status = repr(e.reason) log.warning("Status for %s : %s" % (repr(url), self.status)) except Exception as e: import traceback log.error("%s failed with %s:" % (repr(url), repr(e))) map(log.debug, traceback.format_exc().split("\n")) log.debug("Status for %s : %s" % (repr(url), str(self.status))) return result