用urllib库来实现账号登录的网页请求

完整的功能:获取个人中心的界面

1.代码登录(代码设置账号和密码)保存cookie

需要登录的url 个人中心的url
(1)获取cookie需要登录的url
(2)爬取个人中心需要个人中心的url

获取个人中心页面的数据


2.带着cookie 去请求个人中心

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

cookiejar用来管理cookie

1.1登录之前获取账号密码(登录界面)
1.2发送请求登录(账号密码)

请求头

url = "https://www.yaozh.com/login/"

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
           }
构造请求参数(post请求参数必须是字典)
login_from_data = {"username":"徒步珊瑚海3","pwd":"ym800314",
                   "formhash":"BE09D485AD","backurl":"https%3A%2F%2Fwww.yaozh.com%2F"}

post 请求上传的参数必须要是bytes

(1)将参数转译

log_bytes = parse.urlencode(login_from_data).encode("utf-8")

构造请求头对象

login_request = urllib.request.Request(url,headers=headers,data=log_bytes)
请求参数(get是拼接到url后面)
username: 徒步珊瑚海3
pwd: ym800314
formhash: BE09D485AD
backurl: https%3A%2F%2Fwww.yaozh.com%2F
发送post请求(登录成功保存cookie信息)
cook_jar = cookiejar.CookieJar()
创建可以添加cookie的处理器(handler)
因为默认urlopen的方式不能保存cookie
cook_handler = urllib.request.HTTPCookieProcessor(cook_jar)
根据handler创建opener
opener = urllib.request.build_opener(cook_handler)

发送请求

login_from_data即包含 请求头信息,又包含参数信息
发送请求如果登录成功自动帮助我们保存cookie
opener.open(login_request)

2访问个人中心界面(opener对象里面有cookie)

2.1 个人中心的url

center_url = "https://www.yaozh.com/member/"
构造请求对象
center_request = urllib.request.Request(center_url,headers=headers)
发送网络请求(拿着cookie信息去发送)
拿着刚刚创建好的opener去发送请求,因为这个opener里面保存了cookie
response = opener.open(center_request)

data = response.read().decode("utf-8")

with open("new.html","w",encoding="utf-8")as f:
    f.write(data)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 因为雨天天气,我好几天没去光顾阳台上的盆景。今天出去一看,大吃一惊,其中一盆已经落叶满地,生命垂危,但她的身边,一...
    赵小焕阅读 372评论 0 2
  • 121. 买卖股票的最佳时机 描述 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只...
    GoMomi阅读 348评论 0 0
  • 桂花树下吴刚忙 嫦娥玉兔月宫闲 游子异乡在望月 月圆中秋人断肠 月到中秋分外亮 人逢团圆精神爽 中秋月圆人难圆 游...
    秋AldrichB果阅读 426评论 0 7
  • 冬雨洗后的树林,色彩分外的明亮,朦胧的烟雨覆盖在树林上空,如画的景色,让人沉浸其中,有好友相伴静立于林间,听树叶下...
    西海香雪儿阅读 203评论 0 0
  • 又是一年生日,第一次记得这么清晰。 23年了,原来已经过了22个生日了,只是,这也只是一个模糊冰冷的数字。 很久之...
    岚风的叶子阅读 362评论 0 0