Heim  >  Artikel  >  Web-Frontend  >  Legen Sie den Cookie-Ablauf so fest, dass er automatisch aktualisiert und abgerufen wird

Legen Sie den Cookie-Ablauf so fest, dass er automatisch aktualisiert und abgerufen wird

php中世界最好的语言
php中世界最好的语言Original
2018-03-17 10:15:223592Durchsuche

Dieses Mal werde ich Ihnen die Vorsichtsmaßnahmen zum Festlegen von Cookie-Ablauf, automatischer Aktualisierung und automatischer Erfassung sowie zum Festlegen von Cookie-Ablauf, automatischer Aktualisierung und automatischer Erfassung vorstellen. Das Folgende ist ein praktischer Fall Schauen Sie mal rein.

Dieser Artikel implementiert die automatische Erfassung von Cookies und die automatische Aktualisierung von Cookies, wenn sie ablaufen.

Um viele Informationen auf sozialen Netzwerken zu erhalten, müssen Sie sich anmelden. Nehmen Sie Weibo als Beispiel. Ohne Anmeldung können Sie nur die zehn besten Weibo-Beiträge von Big Vs sehen. Um eingeloggt zu bleiben, sind Cookies erforderlich. Nehmen Sie als Beispiel die Anmeldung bei www.weibo.cn:

Eingabe in Chrome: http://login.weibo.cn/login/

Analysekontrolle Wenn die Anfrage von den Taiwan-Headern zurückgegeben wird, sehen Sie mehrere Sätze von Cookies, die von weibo.cn zurückgegeben werden.

Implementierungsschritte:

1. Verwenden Sie Selen, um sich automatisch anzumelden, um Cookies zu erhalten und sie in einer Datei zu speichern >2. Lesen Sie das Cookie, vergleichen Sie die Gültigkeitsdauer des Cookies und führen Sie Schritt 1 erneut aus.

3 Füllen Sie das Cookie aus, um den Anmeldestatus beizubehalten.

1. Cookies online abrufen

Verwenden Sie Selenium + PhantomJS, um die Browseranmeldung zu simulieren und Cookies zu erhalten.

Normalerweise gibt es mehrere Cookies und die Cookies werden einzeln gespeichert .weibo-Suffixdatei.

2. Cookies aus Dateien abrufen
def get_cookie_from_network():
 from selenium import webdriver
 url_login = 'http://login.weibo.cn/login/' 
 driver = webdriver.PhantomJS()
 driver.get(url_login)
 driver.find_element_by_xpath('//input[@type="text"]').send_keys('your_weibo_accout') # 改成你的微博账号
 driver.find_element_by_xpath('//input[@type="password"]').send_keys('your_weibo_password') # 改成你的微博密码
 driver.find_element_by_xpath('//input[@type="submit"]').click() # 点击登录
 # 获得 cookie信息
 cookie_list = driver.get_cookies()
 print cookie_list
 cookie_dict = {}
 for cookie in cookie_list:
  #写入文件
  f = open(cookie['name']+'.weibo','w')
  pickle.dump(cookie, f)
  f.close()
  if cookie.has_key('name') and cookie.has_key('value'):
   cookie_dict[cookie['name']] = cookie['value']
 return cookie_dict

Durchsuchen Sie Dateien mit der Endung .weibo, also Cookie-Dateien, aus dem aktuellen Verzeichnis. Verwenden Sie pickle, um es in ein Diktat zu entpacken, den Ablaufwert mit der aktuellen Zeit zu vergleichen und leer zurückzugeben, wenn es abläuft.

3 Wenn das zwischengespeicherte Cookie abläuft, holen Sie sich das Cookie erneut vom Netzwerk 🎜>
def get_cookie_from_cache():
 cookie_dict = {}
 for parent, dirnames, filenames in os.walk('./'):
  for filename in filenames:
   if filename.endswith('.weibo'):
    print filename
    with open(self.dir_temp + filename, 'r') as f:
     d = pickle.load(f)
     if d.has_key('name') and d.has_key('value') and d.has_key('expiry'):
      expiry_date = int(d['expiry'])
      if expiry_date > (int)(time.time()):
       cookie_dict[d['name']] = d['value']
      else:
       return {}
 return cookie_dict

4. Verwenden Sie Cookies, um andere Weibo-Homepages anzufordern

def get_cookie():
 cookie_dict = get_cookie_from_cache()
 if not cookie_dict:
  cookie_dict = get_cookie_from_network()
 return cookie_dict

Ich glaube, Sie haben die Methode gemeistert, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie hier Weitere verwandte Artikel auf der chinesischen PHP-Website!

def get_weibo_list(self, user_id):
 import requests
 from bs4 import BeautifulSoup as bs
 cookdic = get_cookie()
 url = 'http://weibo.cn/stocknews88' 
 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36'}
 timeout = 5
 r = requests.get(url, headers=headers, cookies=cookdic,timeout=timeout)
 soup = bs(r.text, 'lxml')
 ...
 # 用BeautifulSoup 解析网页
 ...
Empfohlene Lektüre:

React Native verwendet Fetch, um Bilder hochzuladen


So verkleinern Sie die von Webpack gepackten Dateien anschließend Komprimierung


Verwenden Sie Import und Require, um JS zu packen


Spezialeffekt der Sternennavigationsleiste

Das obige ist der detaillierte Inhalt vonLegen Sie den Cookie-Ablauf so fest, dass er automatisch aktualisiert und abgerufen wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn