python 爬虫cookie的简单使用

#coding=utf-8

 

import urllib

import urllib2

import cookielib

from bs4 import BeautifulSoup

 

url ="http://www.baidu.com"

values = {

            'userName':'aaaaaa',

            'password':'bbbbbb'

         }

postdata =urllib.urlencode(values)

user_agent = "Mozilla/5.0(Windows NT 6.1; WOW64)"

headers ={"User-Agent":user_agent}


#以下为创建opener

file_name = 'cookie.txt'

cookie =cookielib.MozillaCookieJar(file_name)

handler =urllib2.HTTPCookieProcessor(cookie)

opener =urllib2.build_opener(handler)

 

#请求url

try:

    request = urllib2.Request(url, data = None,headers=headers)

    response = opener.open(request, timeout =2)

except urllib2.HTTPError, e:

    print e.code

except urllib2.URLError, e:

    print e.reason

except:

    print "Error"

#保存cookie到文件中

cookie.save(ignore_discard=True,ignore_expires=True)   

data = response.read()

soup = BeautifulSoup(data,"lxml")

for link in soup.find_all('a'):

    print link


更多详细内容请参考 http://cuiqingcai.com/1052.html


### 回答1: Python爬虫中,Cookie是一种用于在客户端和服务器之间传递信息的技术。在爬取网站时,有些网站需要登录才能获取数据,这时就需要使用Cookie来模拟登录状态。一般情况下,我们可以使用requests库来发送HTTP请求,并在请求头中添加Cookie信息。具体使用方法可以参考requests库的文档。另外,也可以使用第三方库如Selenium来模拟浏览器行为,自动获取Cookie信息。需要注意的是,使用Cookie时需要遵守网站的相关规定,不得进行非法操作。 ### 回答2: Python爬虫中,HTTP Cookie是一种跟踪用户身份、记录用户行为的机制。它可以存储在客户端,也可以存储在服务端。一般来说,使用Python爬虫抓取网站内容时,需要使用Cookie模拟登录,或者在爬虫请求过程中使用Cookie来保持登录状态,从而绕过一些反爬虫的限制。下面是关于使用Python爬虫Cookie的一些注意点。 一、设置Cookie 1、手动添加CookiePython的requests包中,可以使用cookies字典来设置Cookie。例如: import requests cookies = {'name': 'python', 'age': '20'} response = requests.get('http://www.example.com', cookies=cookies) 2、使用requests.Session()自动处理Cookie 当我们使用requests.Session()发起HTTP请求时,会自动处理Cookie。例如: import requests session = requests.Session() session.post('http://www.example.com/login', data={'username': 'admin', 'password': '123456'}) response = session.get('http://www.example.com/profile') 二、获取CookiePython的requests包中,可以使用response.cookies来获取Cookie。例如: import requests response = requests.get('http://www.example.com') cookies = response.cookies print(cookies) 三、保存CookiePython的requests包中,可以使用response.cookies来获取Cookie,然后使用pickle或者json等模块将Cookie进行序列化保存起来。例如: import requests import pickle response = requests.get('http://www.example.com') cookies = response.cookies with open('cookies.pickle', 'wb') as f: pickle.dump(cookies, f) 四、加载CookiePython的requests包中,可以使用requests.cookies.RequestsCookieJar.from_dict()或者pickle等模块来加载Cookie。例如: import requests import pickle with open('cookies.pickle', 'rb') as f: cookies = pickle.load(f) response = requests.get('http://www.example.com', cookies=cookies) 五、更新CookiePython的requests包中,可以使用dict.update()方法来更新Cookie。例如: import requests cookies = {'name': 'python', 'age': '20'} cookies.update({'gender': 'male'}) response = requests.get('http://www.example.com', cookies=cookies) 六、删除CookiePython的requests包中,可以使用dict.pop()方法来删除Cookie。例如: import requests cookies = {'name': 'python', 'age': '20'} cookies.pop('name') response = requests.get('http://www.example.com', cookies=cookies) 七、使用Chrome插件获取Cookie 可以使用Chrome的EditThisCookie插件来获取Cookie,并将Cookie保存为json格式。在Python的requests包中,可以使用json模块来加载Cookie。例如: import requests import json with open('cookies.json', 'r') as f: cookies = json.load(f) response = requests.get('http://www.example.com', cookies=cookies) 总之,对于使用Python爬虫来抓取网站内容,Cookie是非常重要的。需要仔细了解Cookie使用方法和注意事项,才能够更加高效稳定地完成数据抓取任务。 ### 回答3: python爬虫使用范围越来越广泛,由于许多网站需要用户登录才能访问其中的内容,因此需要在爬虫使用cookie来模拟登录状态。在爬虫编写中,可使用requests或者是urllib库来实现cookie使用。下面我们来了解一下cookie使用方法。 1.使用requests库实现cookie使用 (1)登录请求 使用requests发送登录请求时,需要穿过用户名和密码,在请求头中添加User-Agent和Referer参数。 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Referer': 'http://xxxx.com' } data = { 'username': 'username', 'password': 'password' } login = s.post(url, headers=headers, data=data) (2)获取cookie 在登录成功后,可通过response.cookies.get_dict()获取cookie字典,键为cookie的名称,值为cookie的值。 cookie_dict = login.cookies.get_dict() (3)使用cookie 在获取到cookie后,可直接将cookie字典作为参数加入到后续请求中,例如: headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Referer': 'http://xxxx.com', 'Cookie': '; '.join([key + '=' + value for key, value in cookie_dict.items()]) } content = s.get(url, headers=headers) 2.使用urllib库实现cookie使用 urllib与requests用法有所不同,cookie使用需要使用HTTPCookieProcessor模块,步骤如下: (1)创建一个opener cookieJar = http.cookiejar.CookieJar() opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookieJar)) (2)登录请求 在发送登录请求时,需要在请求头中添加User-Agent和Referer参数,用户名和密码需要通过urlencode编码后添加到请求数据中。 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Referer': 'http://xxxx.com' } data = { 'username': 'username', 'password': 'password' } login = opener.open(url, headers=headers, data=urllib.parse.urlencode(data).encode('utf-8')) (3)使用cookie 当成功登录后,可以在后续请求中直接使用创建好的opener对象,如: headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Referer': 'http://xxxx.com' } content = opener.open(url, headers=headers) 总的来说,cookie能模拟用户登录状态,便于访问页面。但在实际使用中,应尽量使用网站提供的API或者数据接口。使用cookie可能会被网站识别为爬虫,有可能会被限制访问或者被封IP,因此应该在使用前咨询网站管理员的意见。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值