Dieses Mal erkläre ich Ihnen, wie Sie Cookies automatisch erhalten und automatisch aktualisieren und welche Vorsichtsmaßnahmen es gibt, um Cookies automatisch zu erhalten und automatisch zu aktualisieren. Hier sind praktische Fälle Schauen Sie gemeinsam vorbei.
Um viele Informationen auf Social-Networking-Sites 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 angemeldet zu bleibenStatus, sind Cookies erforderlich. Nehmen Sie als Beispiel die Anmeldung bei www.weibo.cn:
Wenn Sie die Anforderungsrückgabe der Header der Konsole analysieren, werden Sie feststellen, dass weibo.cn über mehrere Sätze zurückgegebener Cookies verfügt.
Umsetzungsschritte:
1. Verwenden Sie Selenium, um sich automatisch anzumelden, um Cookies zu erhalten und sie in Dateien zu speichern
2. Lesen Sie das Cookie und vergleichen Sie die Gültigkeitsdauer des Cookies. Wenn es abläuft, führen Sie Schritt 1 erneut aus 3. Wenn Sie andere Webseiten anfordern, füllen Sie das Cookie aus, um den Anmeldestatus beizubehalten.
1. Holen Sie sich Cookies online
Verwenden Sie Selen + PhantomJS, um die Browseranmeldung zu simulieren und Cookies zu erhalten Normalerweise gibt es mehrere Cookies, und die Cookies werden einzeln in Dateien mit dem Suffix .weibo gespeichert.
2. Holen Sie sich Cookies aus der Datei 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äuftdef 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
zwischengespeicherte
Cookie abläuft, holen Sie sich das Cookie erneut vom Netzwerkdef 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
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 解析网页 ...
Vue wird aktualisiert nach dem Verpacken des Projekts Wie man mit der 404-Anzeige umgeht
Das obige ist der detaillierte Inhalt vonSo erhalten und aktualisieren Sie Cookies automatisch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!