金沙澳门官网7自动登录并获取cookies,小白学爬虫

作者: 网络编程  发布:2019-07-27

Python如何实现模拟登陆爬取Python实现模拟登陆的方式简单来说有三种:一、采用post请求提交表单的方式实现。二、利用浏览器登陆网站记录登陆成功后的cookies,采用get的请求方式,传入cookies值来实现登陆。三、采用模拟浏览器的方式登陆。三种方式各有利弊,采用第一种方式每次运行程序都是重新登陆,容易造成封账号的情况出现,同时不能用在验证码是JS加载生成的和查看不到提交表单格式这两种情况。我认为第二种方式优于第一种和第三种,大多数情况下推荐使用第二种。对于较大规模的采集,一般的做法是利用大量小号采用第一或第三种方式定期生成大量的cookies,保存起来形成一个自己的cookie池,并维护其有效性,在采集时调用cookie池中的cookies完成爬取。

前言

Python由于其第三方库扩展多、接口简洁、处理网页方便等原因被广泛应用于爬虫的编写。网络爬虫的第一步即是要能够实现代码的自动登录,登录后使用获得的cookies来访问页面。

本文使用Python2.7.13 Requests来实现简单网页的登录(不含验证码)。

本次分享以登陆豆瓣为例讲解前两种登陆方式。  

获取需要提交的变量

自动登录的基本原理是模拟人工填入账号密码,并向服务器进行提交,获取服务器的应答(以cookies的形式)。因此第一步我们需要知道在网页端登录时,浏览器向服务器提交的账号与密码的变量分别是什么?

这里以Google Chrome为例演示如何查看提交的账号与密码的变量名(其他浏览器类似):

打开需要登录的网址,并按F12,之后选择“Network”标签(勾选“preserve log”)如图:

金沙澳门官网 1

之后填入账号、密码并进行登录,登录成功后在下面的页面Name中点击第一个,会在右边弹出下面的窗口,滑动到最下面可以看到Form Data,即是浏览器向服务器POST提交的数据。自动登录就是使用程序向服务器提交这些数据:其中userName即是输入的账号,passWord即是输入的密码。(注:如果第一步的时候不勾选“preserve log”,在这一步中可能看不到Form Data)

金沙澳门官网 2

第一种提交post请求的方式首先讲解第一种方式,其重点有两个:一是找到网站的登陆网址;二是找到post请求提交的表单格式。以豆瓣为例豆瓣的登陆网址为: 这里要注意通讯协议是https而不是http 。接下来解决如何查看网站登陆提交的表单格式。这里使用的是chrome浏览器。

Requests模拟登陆

Requests是Python中的HTTP库,能够模拟浏览器进行网站的登录与网页内容的获取。下面使用Python代码模拟Chrome进行登录:

import urllib

import urllib2

import requests

import re

import sys

import requests.utils

sys.path.append("libs")

s=requests.session()#获取会话对象

headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36','Content-Type':'application/x-www-form-urlencoded'}#设置请求的信息头

url="

Data={'userName':'XXXXX','passWord':'XXXX'}#设置请求时填写的账号密码(变量名上一步获得)

login=s.post(url,data=Data,headers=headers)#向服务器发出POST请求

print login.status_code#请求的状态码

print login.url#请求成功后跳转页面的URL

dict_cookies=s.cookies.get_dict()#获取cookies

print login.text#获取跳转后页面的内容

response=s.get(afterUrl,cookies=s.cookies,headers=headers)#获取登录后页面的内容,其中afterUrl为登陆后可见的URL

在浏览器中打开网址:)

总结

使用Python2.7进行网站的模拟登陆,同时获得登陆成功的cookies。针对含有验证码的情况暂时没有考虑,后续会加上含有验证码时的处理方法。

点击快捷键F12打开开发者工具,选中Network,并勾选Preserve log,输入假的账号或密码,不输入验证,如下图所示。

金沙澳门官网 3

点击登陆豆瓣按钮,选中login页面,点击headers,翻到最后面,可以看到formdata,如下图所示:

金沙澳门官网 4

如图所示豆瓣登陆需要提交的以下关键字:

  1. source:index_nav
  2. form_email:你的账号
  3. form_password:密码
  4. captcha-solution:验证码
  5. captcha-id:HzglLIfrAxX6maSpZSJPsDAW:en(验证码所对应的id)

知道表单格式后下面开始编写爬虫代码。

本文由金沙澳门官网发布于网络编程,转载请注明出处:金沙澳门官网7自动登录并获取cookies,小白学爬虫

关键词: 金沙澳门官网

上一篇:注脚词性,结巴分词
下一篇:没有了