Heim  >  Artikel  >  Backend-Entwicklung  >  Python3-Crawler bringt Cookies

Python3-Crawler bringt Cookies

Guanhui
GuanhuiOriginal
2020-07-28 18:34:112951Durchsuche

Python3-Crawler bringt Cookies

Die ursprüngliche englische Bedeutung von Cookie ist „Snack“. Dabei handelt es sich um die vom Server auf der Festplatte des Clients gespeicherten Informationen. Es scheint sich um „Snack“ zu handeln. Snack“ vom Server an den Client gesendet. Der Server kann den Kundenstatus anhand von Cookies verfolgen, was besonders nützlich ist, wenn Kunden unterschieden werden müssen (z. B. im E-Commerce).

Wenn der Client zum ersten Mal Zugriff auf den Server anfordert, speichert der Server zunächst ein Cookie mit relevanten Informationen über den Client. Jedes Mal, wenn der Client in Zukunft Zugriff auf den Server anfordert, wird das Cookie gespeichert wird in die HTTP-Anfragedaten aufgenommen. Durch das Parsen des Cookies in der HTTP-Anfrage können Sie relevante Informationen über den Kunden erhalten.

Sehen wir uns an, wie Python3-Crawler Cookies bringen:

1. Schreiben Sie das Cookie direkt in den Header

# coding:utf-8
import requests
from bs4 import BeautifulSoup
cookie = '''cisession=19dfd70a27ec0eecf1fe3fc2e48b7f91c7c83c60;CNZZDATA1000201968=181584
6425-1478580135-https%253A%252F%252Fwww.baidu.com%252F%7C1483922031;Hm_lvt_f805f7762a9a2
37a0deac37015e9f6d9=1482722012,1483926313;Hm_lpvt_f805f7762a9a237a0deac37015e9f6d9=14839
26368'''
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Geck
o) Chrome/53.0.2785.143 Safari/537.36',
'Connection': 'keep-alive',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Cookie': cookie}
url = 'https://www.jb51.net/article/191947.htm'
wbdata = requests.get(url,headers=header).text
soup = BeautifulSoup(wbdata,'lxml')
print(soup)

2 >

# coding:utf-8
import requests
from bs4 import BeautifulSoup
cookie = {
"cisession":"19dfd70a27ec0eecf1fe3fc2e48b7f91c7c83c60",
"CNZZDATA100020196":"1815846425-1478580135-https%253A%252F%252Fwww.baidu.com%252F%7C1483
922031",
"Hm_lvt_f805f7762a9a237a0deac37015e9f6d9":"1482722012,1483926313",
"Hm_lpvt_f805f7762a9a237a0deac37015e9f6d9":"1483926368"
}
url = 'https://www.jb51.net/article/191947.htm'
wbdata = requests.get(url,cookies=cookie).text
soup = BeautifulSoup(wbdata,'lxml')
print(soup)

Instanzerweiterung:

Verwenden Sie Cookies, um sich auf der ACM-Website des Harbin Institute of Technology anzumelden

Holen Sie sich die Anmeldeadresse der Website

http:// acm.hit.edu.cn/hoj/system/login

Zu übertragende Beitragsdaten anzeigen

Benutzer und Passwort

Code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__author__ = 'pi'
__email__ = 'pipisorry@126.com'

"""
import urllib.request, urllib.parse, urllib.error
import http.cookiejar

LOGIN_URL = 'http://acm.hit.edu.cn/hoj/system/login'
values = {'user': '******', 'password': '******'} # , 'submit' : 'Login'
postdata = urllib.parse.urlencode(values).encode()
user_agent = r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'
headers = {'User-Agent': user_agent, 'Connection': 'keep-alive'}

cookie_filename = 'cookie.txt'
cookie = http.cookiejar.MozillaCookieJar(cookie_filename)
handler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)

request = urllib.request.Request(LOGIN_URL, postdata, headers)
try:
  response = opener.open(request)
  page = response.read().decode()
  # print(page)
except urllib.error.URLError as e:
  print(e.code, ':', e.reason)

cookie.save(ignore_discard=True, ignore_expires=True) # 保存cookie到cookie.txt中
print(cookie)
for item in cookie:
  print('Name = ' + item.name)
  print('Value = ' + item.value)

get_url = 'http://acm.hit.edu.cn/hoj/problem/solution/?problem=1' # 利用cookie请求訪问还有一个网址
get_request = urllib.request.Request(get_url, headers=headers)
get_response = opener.open(get_request)
print(get_response.read().decode())
# print('You have not solved this problem' in get_response.read().decode())

Empfohlenes Tutorial: „

Python-Tutorial

Das obige ist der detaillierte Inhalt vonPython3-Crawler bringt Cookies. 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