优秀的编程知识分享平台

网站首页 > 技术文章 正文

urllib用账号密码登陆,携带cookie访问链接

nanyue 2024-09-27 12:53:12 技术文章 7 ℃

爬取目标:药智网

url:https://www.yaozh.com/member/

要求:使用账号密码登陆,将cookie保存在cookiejar,然后携带cookie访问个人中心

请求库:urllib

写法:常规

难度:初级

import urllib.request
from http import cookiejar
from urllib import parse

# 登陆
login_url = 'https://www.yaozh.com/login'
login_form_data = {
        'username': '13*******4',
        'pwd': '********',
        'country': '86_zh-CN',
        'formhash': '90F6B08A27',
        'backurl': 'https%3A%2F%2Fwww.yaozh.com%2F'
}
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36',
}
# 保存cookie
cookie_jar = cookiejar.CookieJar()
# 定义有添加cookie功能的处理器
cookie_handler = urllib.request.HTTPCookieProcessor(cookie_jar)
# 根据处理器生成opener
opener = urllib.request.build_opener(cookie_handler)
# 带参数发送post请求
login_str = parse.urlencode(login_form_data).encode('utf-8')
login_request = urllib.request.Request(login_url,headers=headers,data=login_str)
# 登陆成功则cookiejar会自动保存cookies
opener.open(login_request)

# 带着cookie取访问个人中心
center_url = 'https://www.yaozh.com/member/'
center_request = urllib.request.Request(center_url,headers=headers)
response = opener.open(center_request)
# bytes 转 str
data = response.read()

with open('member.html','wb') as f:
    f.write(data)

Tags:

最近发表
标签列表