精华内容
下载资源
问答
  • python爬虫cookies登陆
    千次阅读
    2022-01-28 13:31:34
    http/https协议特性:无状态
    没有请求到对应页面数据的原因:发起的第二次基于个人主页页面请求的时候,服务器端并不知道该次请求是基于登陆状态下的请求
    cookie:用来让服务器端记录客户端的相关状态
     (1)手动处理:通过抓包工具获取cookie值,将该值封装到headers中
    (2)自动处理:
            ——cookie值的来源:模拟登陆post请求后,由服务器端创建
       session会话对象:
           ——作用:
              (1)可以进行请求的发送
              (2)如果请求过程中产生了cookie,则该cookie会被自动存储/携带在该seesion对象中
           ——使用:
              (0)创建一个session对象,session=requests.Session()
              (1)使用session对象进行模拟登录post请求数据的发送(cookie就会被存储在session中)
              (2)session对象对个人主页对应的get请求进行发送(携带了cookie)
    # 模拟登陆
    from lxml import etree
    import requests
    
    if __name__ == "__main__":
    	session = requests.session()
    	headers = {
    		'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69'
    	}
    	url = 'http://www.gebiqu.com/login.php'
    	parms={
    		'LoginForm[username]': '你的账号',
    		'LoginForm[password]': '你的密码',
    		't_btnlogin':'',
    		'action': 'login',
    		'jumpreferer': '1'
    	}
    	# 使用session进行post请求发送
    	response = session.post(url=url,data=parms,headers=headers)
    	print(response.status_code)
    	mybook_url = 'http://m.gebiqu.com/'
    	# 使用携带cookie的session进行get请求的发送
    	mybook_text = session.get(url=mybook_url,headers=headers).text
    	with open('./mybook.html','w',encoding='utf-8') as fp:
    		fp.write(mybook_text)
    	print('保存成功!')

    更多相关内容
  • 相信各位在写 python 爬虫的时候会在爬取网站时遇到一些登陆的问题,比如说登陆时遇到输入验证码比如说登录时遇到图片拖拽等验证,如何解决这类问题呢?一般有两种方案。 使用 cookie 登陆 我们可以通过使用 cookies...
  • 现在很多网站需要用户成功登录后才可以查看相关内容。使用Cookie 模拟登录可以很好地...Cookie 验证流程:当用户第一次登陆网站时,服务端会在返回的响应头 Response Headers 中添加 Cookie数据, 浏览器接收到响应头

    Python爬虫——Cookie模拟登录

    1、Cookie模拟登录

    现在很多网站需要用户成功登录后才可以查看相关内容。使用Cookie 模拟登录可以很好地解决这种问题。

    Cookie 是指某些网站服务器为了辨别用户身份和进行Session跟踪,而储存在用户浏览器上的文本文件,Cookie是一个记录了用户登录状态以及用户属性的加密字符串,Cookie可以保持登录信息到用户下次与服务器的会话。Cookie 以键 / 值对形式存储。

    Cookie 验证流程:当用户第一次登陆网站时,服务端会在返回的响应头 Response Headers 中添加 Cookie数据, 浏览器接收到响应头的信息后,会将 Cookie 保存至浏览器本地存储中,当用户再次向该网站发送请求时,请求头中就会携带 Cookie,这样服务器通过读取 Cookie 就能识别登陆用户了。

    Cookie在爬虫方面最典型的应用是判定注册用户是否已经登录网站,用户在请求参数中传入Cookie,在发送请求访问url时,会跳过登录界面,跳过登录验证流程,从而直接访问到想要的网站数据。

    Cookie 模拟登录使用实例:

    注册一个微博账号,登录微博并进入个人主页,使用F12打开浏览器的调试工具,在 Headers 选项中找到请求头Request Headers 中的 Cookie 信息,复制保存。

    import urllib.request
    import urllib.parse
    
    url = 'https://weibo.com/u/6768120693/home'
    
    #请求头参数
    headers = {
        'cookie': 'UPSTREAM-V-WEIBO-COM=35846f552801987f8c1e8f7cec0e2230; _s_tentry=passport.weibo.com; Apache=3550042880907.0825.1657677410065; SINAGLOBAL=3550042880907.0825.1657677410065; ULV=1657677410241:1:1:1:3550042880907.0825.1657677410065:; XSRF-TOKEN=wpUjXoB3U_T8KzDcYBGeQmeg; WBPSESS=dg5zs_KFY81p0FnDKmb34Ti2iJGu9QxJdhMzG8ikVBN-CyoFvr-FTOapET7oPxP0FTRcDR-4ospowpRpkqiE8Gga-FNf9Bekers3TFYG5vxMEBfXahOBmCiJK7XwTPB_GaeInt3uz0W9CfgA545n9SWoyDpY910MV0NogSygO48=; PC_TOKEN=fd99713024; login_sid_t=6d987092eac2182f810741424691738b; cross_origin_proto=SSL; WBStorage=4d96c54e|undefined; wb_view_log=1920*10801; SUB=_2A25Py7HwDeRhGeBJ7VoQ8i7Kwj-IHXVsoKQ4rDV8PUNbmtAKLVPNkW9NRi9nZzdxPj2ym6xf8i-dSCWgSnyp4GVC; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W5e8Y.xknmxKI8AQq4L07-c5JpX5KzhUgL.FoqNSonpeo5c1Ke2dJLoI0.LxKqL1h5L1KzLxKqL1KqLBK-LxKqL1hnL1K2LxKML1-2L1hBLxK-L1K5L12BLxK-LB-BL1KUT-27t; ALF=1689318688; SSOLoginState=1657782688; wvr=6; wb_view_log_6768120693=1920*10801; webim_unReadCount=%7B%22time%22%3A1657782816028%2C%22dm_pub_total%22%3A0%2C%22chat_group_client%22%3A0%2C%22chat_group_notice%22%3A0%2C%22allcountNum%22%3A40%2C%22msgbox%22%3A0%7D',
        'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.5261 SLBChan/10'
    }
    
    request = urllib.request.Request(url=url,headers=headers)
    response = urllib.request.urlopen(request)
    content = response.read().decode('utf-8')
    
    with open('weibo.html','w',encoding='utf-8') as file:
        file.write(content)
    

    2、Handler处理器

    Handler处理器可以定制更高级的请求头,基本的urlopen()方法不支持代理、动态cookie等其他的HTTP/HTTPS高级功能。

    Handler处理器使用步骤:

    • 使用Handler处理器(如HTTPHandler或HTTPSHandler)来创建特定功能的处理器对象;
    • 然后通过urllib.request.build_opener()方法使用处理器,构建opener对象;
    • 使用构建的opener对象,调用open()方法发送请求。

    使用实例:

    import urllib.request
    
    url = 'http://www.baidu.com'
    
    headers = {
        'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.5261 SLBChan/10'
    }
    #1、获取HTTPHandler处理器对象
    http_handler = urllib.request.HTTPHandler()
    #获取HTTPSHandler处理器对象
    https_handler = urllib.request.HTTPSHandler()
    
    #2、构建opener对象
    http_opener = urllib.request.build_opener(http_handler)
    https_opener = urllib.request.build_opener(https_handler)
    
    #定制请求
    request = urllib.request.Request(url=url,headers=headers)
    
    #3、调用open方法发送请求
    http_response = http_opener.open(request)
    https_response = https_opener.open(request)
    
    print(http_response)
    print(https_response)
    

    执行结果:

    <http.client.HTTPResponse object at 0x000002220510A470>
    <http.client.HTTPResponse object at 0x0000022205116CC0>
    
    展开全文
  • 很多用Python的人可能都写过网络爬虫,自动化获取网络数据确实是一件令人愉悦的事情,而Python很好的帮助我们达到这种愉悦。然而,爬虫经常要碰到各种登录、验证的阻挠,让人灰心丧气(网站:天天碰到各种各样的爬虫...
  • 模拟登录,先进行登录页面,F12,点击登录,会看到Network中产生一个请求 点击headers,查找FromData,可以看到: 根据这个可以编写代码 输出为cookies,说明登录成功。

    模拟登录,先进行登录页面,F12,点击登录,会看到Network中产生一个请求
    在这里插入图片描述
    点击headers,查找FromData,可以看到:
    在这里插入图片描述
    根据这个可以编写代码

    import requests
    from fake_useragent import UserAgent
    
    url = "https:xxxxxxlogin.htm"
    session = requests.session()
    data = {
        "email": "admin",
        "password": "admin"
    }
    headers= {'User-Agent':str(UserAgent().random)}
    resp = session.post(url, headers=headers,data=data)
    print(resp.cookies)
    session.close()
    

    输出为cookies,说明登录成功。

    展开全文
  • python 爬虫网页登陆

    2020-11-30 14:23:30
    相信各位在写python爬虫的时候会在爬取网站时遇到一些登陆的问题,比如说登陆时遇到输入验证码比如说登录时遇到图片拖拽等验证,如何解决这类问题呢?一般有两种方案。 使用cookie登陆 我们可以通过使用cookies登陆...

    相信各位在写python爬虫的时候会在爬取网站时遇到一些登陆的问题,比如说登陆时遇到输入验证码比如说登录时遇到图片拖拽等验证,如何解决这类问题呢?一般有两种方案。
    使用cookie登陆
    我们可以通过使用cookies登陆,首先获取浏览器的cookie,然后利用requests 库直接登陆cookie,服务器就会认为你是一个真实登陆用户,所以就会返回给你一个已登陆的状态,这个方法是很好用的,基本上绝大部分的需要验证码登录的网站都可以通过cookie登录来解决,

     #! -*- encoding:utf-8 -*-
        import requests
        import random
        import requests.adapters
    
        # 要访问的目标页面
        targetUrlList = [
            "https://httpbin.org/ip",
            "https://httpbin.org/headers",
            "https://httpbin.org/user-agent",
        ]
    
        # 代理服务器
        proxyHost = "t.16yun.cn"
        proxyPort = "31111"
    
        # 代理隧道验证信息
        proxyUser = "username"
        proxyPass = "password"
    
        proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
            "host": proxyHost,
            "port": proxyPort,
            "user": proxyUser,
            "pass": proxyPass,
        }
    
        # 设置 http和https访问都是用HTTP代理
        proxies = {
            "http": proxyMeta,
            "https": proxyMeta,
        }
    
        # 访问三次网站,使用相同的Session(keep-alive),均能够保持相同的外网IP
        s = requests.session()
    
        # 设置cookie
        cookie_dict = {"JSESSION":"123456789"}
        cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
        s.cookies = cookies
    
        for i in range(3):
            for url in targetUrlList:
                r = s.get(url, proxies=proxies)
                print r.text
    

    若存在验证码,此时采用resp**e = requests_session.post(url=url_login, data=data)是不行的,做法应该如下:

    respe_captcha = requests_session.get(url=url_login, cookies=cookies)
    resp
    e1 = requests.get(url_login) # 未登陆
    respe2 = requests_session.get(url_login) # 已登陆,因为之前拿到了Respe Cookie!
    respe3 = requests_session.get(url_results) # 已登陆,因为之前拿到了Respe Cookie!
    模拟登陆
    这里不得不说一句老话,前人种树,后人乘凉,当时我想爬一下知乎盐选的文章,但是卡在了登陆这块,没想到搜索下来发现了一个模拟登陆的库,非常好用,不过本着好东西不分享防和谐的原则,就不在这里说了。
    具体思路也就是通过requests来进行模拟登陆,然后返回一下验证码,之后传入验证码即可登陆成功了。
    其余文章推荐:https://editor.csdn.net/md/?articleId=110286768
    https://editor.csdn.net/md/?articleId=110159882
    爬取我的世界id

    展开全文
  • python 爬虫(cookie)

    2022-05-13 11:45:54
    cookie和session区别 cookie数据存放在客户浏览器上,session数据放在服务器上 cookie不是很安全,别人...爬虫处理cookie和session 带上cookie、session的优点: 能够请求到登录后页面 带上cookie、session的弊端:
  • 文章目录cookie模拟登陆获取cookie爬取我的简介 cookie模拟登陆 有的时候,我们想要抓取一个网站,但是需要先登录才能访问它,如果不输入用户名和密码,我们就会一直停留在登录页面。 那我们该如何抓取呢? 这时...
  • 46 7.06下载中间件的Cookies.mp4 47 7.07crawlspider规则爬虫.mp4 48 8.01回顾知识点.mp4 49 8.02强化规则爬虫.mp4 50 8.03图片管道的应用.mp4 51 8.04说明自定义图片管道.mp4 52 8.05scrapy中日志记录器.mp4 ...
  • Python爬虫基础-模拟登陆

    千次阅读 2020-12-10 15:41:38
    为什么我们要让爬虫模拟登陆呢?有些内容只有登陆才能进行爬取,如知乎,不登录的主页只能看到注册和登陆 ;你想爬取自己的个人信息有什么方法呢?cookie在互联网发展的早期,由于大家的服务器都不是太好,所以...
  • 上篇关于爬虫的文章,我们讲解了如何运用Python的requests及BeautifuiSoup模块来完成静态网页的爬取,总结过程,网页爬虫本质就两步: 1、设置请求参数(url,headers,cookies,post或get验证等)访问目标站点的...
  • Python爬虫cookies获取方式:手动获取

    千次阅读 2021-06-08 11:21:46
    以微博为例: 打开浏览器的开发者模式,刷新网页 寻找含有cookies的请求例: 然后将cookie标签下的内容替换就好了。
  • 相信很多python学习者都和我一样在刚开始学习爬虫时,对见到的网站都有种跃跃欲试的冲动,像豆瓣电影、电影天堂以及各类壁纸写真图片网站的等等,但这些都是不需要登陆账号就可以直接请求解析网页获取资源链接的,...
  • python爬虫整的很方便,弄了个模拟登陆登陆后带上token和cooke请求页面就拿gitlab练下手了,这个还是有一丢丢麻烦的一、登陆界面获取隐藏域中的token,构建表单的时候需要获取到这个_gitlab_session,登陆校验...
  • 我们这里主要是利用requests模块和bs4模块进行简单的爬虫的讲解,让大家可以对爬虫有了初步的认识,我们通过爬几个简单网站,让大家循序渐进的掌握爬虫的基础知识,做网络爬虫还是需要基本的前端的知识的,下面我们...
  • 在大数据时代,很多人会利用爬虫对网上一些数据进行采集,但有些网站为了反爬会出一些策略,在爬取某些网页时,登陆界面时经常遇到的一个坎,而现在大多数的网站在登陆时都会要求用户填写验证码,验证码的形式多种...
  • 1、python爬虫代理使用python爬虫高频率的访问一个固定的网站的话,容易触发该目的网站的反爬机制,将你对应的IP地址进行封禁,那么这个时候我们可以通过代理的方式,让目的网站无法识别到是哪一个IP地址访问的。...
  • 环境:Windows 7 + Python3.6 + Pycharm2019爬虫步骤:链接分析、请求链接、数据获取、数据存储。1、链接分析分析工具:Chrome Network分析工具链接:https://h5.ele.me/店铺列表链接分析列表链接参数分析:# 列表...
  • 在保持合理的数据采集上,使用python爬虫也并不是一件坏事情,因为在信息的交流上加快了流通的频率。今天小编为大家带来了一个稍微复杂一点的应对反爬虫的方法,那就是我们自己构造cookies。在开始正式的构造之前,...
  • 我们之前讲过cookie可以避免网页反爬虫对于登录的一些限制。具体使用的时候,我们还需要用到login函数。这个函数大家可能有点陌生,不过没关系,我们可以在接下来的代码中体会它的用法。通过对知乎登陆的抓包,可以...
  • 模拟用户登录 1....} #登录 url = 'https://passport.17k.com/ck/user/login' resp = session.post(url,data=data) # print(resp.text) # print(resp.cookies) #拿书架上的数据 resp = session.get(...
  • 登录完之后拿到 Cookie cookies = webdriver.get_cookies() 有了 Cookie 你就可以拿到你想要的数据了,希望对你有帮助 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
  • Python爬虫之cookie保存

    千次阅读 2022-04-09 20:57:44
    http.cookiejar的MozillaCookieJar... from urllib import request ... cookie_save=MozillaCookieJar('cookiesave.txt') #这里如果不写文件名,在save保存里必须写 hander=request.HTTPCookieProcessor(cookie_save).
  • Python爬虫之验证码处理

    千次阅读 2021-10-10 16:12:23
     登陆获取cookies, 才能去访问用户的个人页 response = session.post(url=login_url, headers=headers, data=data) response.encoding = 'utf-8' cookies = response.cookies # 查看登陆是否成功了 with...
  • python爬虫基本思路

    千次阅读 2022-05-02 23:30:04
    python爬虫基本思路 一、明确需求 首先我们要明白我们爬取的具体是什么内容,比如爬取文章标题,爬取图片,爬取实时新闻 二、建立request请求 1.使用的是哪一种请求方式,get post等 2.获取请求URL,确定请求连接 3....
  • agent import headers def renren_login(): url = 'http://www.renren.com/880151247/profile' login_url = 'http://www.renren.com/PLogin.do' # requests中的session会帮我们得到cookies的值 session = ...
  • Python爬虫之cookie的简单爬取 1.直接爬取(cookie显示在编译器中): import http.cookiejar,urllib.request cookie = http.cookiejar.CookieJar() # 声明CookieJar对象 handler = urllib.request....
  • Python爬虫进行Cookie登录

    千次阅读 2019-07-17 14:58:09
    #使用cookie登陆get_url get_request = urllib.request.Request(Url_afterLogin,headers=headers) get_response = opener.open(get_request) #看看是不是登录之后的页面的html码,是则成功 print(get_response.read...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,079
精华内容 8,431
热门标签
关键字:

python爬虫cookies登陆