php 爬虫 cookies,python爬虫 -- Cookie

本文介绍了Cookie的基本概念,它是如何帮助维持用户会话状态的。在Python中,使用Cookielib库和HTTPCookieProcessor来处理Cookie,以便在爬虫中保持登录状态。通过示例代码展示了如何进行登录操作并保存登录后的网页内容。
摘要由CSDN通过智能技术生成

1、Cookie简介

简而言之,Cookie是客户端登录一个网址后,保存完整的“会话信息”,或者只保存sessionID等信息的文件。

Cookie的目的是为了防止访问同一个网站的不同网页时,需要重复登录的问题。

正常登录一些网站时,Cookie的操作都是隐式、自动的,我们无需关系。但是在使用爬虫时,我们需要额外处理Cookie,以保持登录状态。

2、Cookiejar

python3中通过Cookielib库处理Cookie。

首先我们需要成功进行登录:

打开一个需要登录的网页

打开F12调试,点击表单的登录,找到登录的URL(找到POST请求即可)

观察表单元素的name属性,分析需要提交的字段

然后进可以使用代码实现:

def login(**keywords):

"""通过post表单传递信息,进行登录"""

# 使用uril.parse对字典信息进行编码,编码为服务端可识别的post形式

url = "http://bbs.chinaunix.net/member.php?mod=logging&action=login" \

"&loginsubmit=yes&loginhash=LFejL"

post_data = urllib.parse.urlencode(keywords).encode("utf-8")

# 结合url和post请求数据,构建Request对象

req = urllib.request.Request(url, post_data)

# 添加请求头

req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 "

"(KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36")

# 创建CookieJar对象

jar = http.cookiejar.CookieJar()

# 使用 HTTPCookieProcessor创建Cookie处理器,并以其为参数构建opener对象

opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(jar))

# 将opener注册到全局

urllib.request.install_opener(opener)

return opener.open(req)

response = login(**{'username': '用户名', 'password': '密码'})

loginFile = open("E:/login.html", "wb")

loginFile.write(response.read())

loginFile.close()

htmlFile = urllib.request.urlretrieve("http://bbs.chinaunix.net", "E:/other.html")

urllib.request.urlcleanup()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值