python3使用urllib抓取用户名密码登陆的网页

本文介绍了一种使用Python实现网站登录的方法,并通过urllib库获取并保存登录后的Cookies信息。该过程涉及到了构造请求头、POST数据等步骤,并最终将Cookies保存到本地文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#python34
# -*- coding: utf-8 -*-

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

LOGIN_URL = r'http://......'
get_url = 'http://.......'  # 利用cookie请求访问另一个网址

username=input('用户名:')
password=input('密码:')
values = {'username': username, 'password': password}

postdata = urllib.parse.urlencode(values).encode()

headers = {
    'User-Agent':
    'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}

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

request = urllib.request.Request(LOGIN_URL, postdata, headers)

try:
    response = opener.open(request)
    
    #将cookies保存到本地test.txt,便于读取
    cookies = list()
    for item in cookie_jar:
        cookies.append(item.name + '=' + item.value)
    print(cookies)
    with open('test.txt', 'w+', encoding='utf-8') as f:
        f.write(';'.join(cookies))
    
    #将cookies保存到本地cookie_jar.txt
    #cookie_jar.save(ignore_discard=True, ignore_expires=True)
except urllib.error.URLError as e:
    print(e.code, ':', e.reason)

#测试获取数据
get_request = urllib.request.Request(get_url)  
get_response = opener.open(get_request)  
print(get_response.read().decode())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值