mg4377娱乐娱城官网_mg4377娱乐手机版_www.mg4377.com

玩转python爬虫之cookie使用办法,面临post分页爬虫

时间:2019-06-03 17:18来源:mg4377娱乐手机版
先是鲜明你要爬取的靶子网址的表单提交格局,能够透过开辟者工具看到。这里推荐应用chrome。 python爬虫中get和post方法介绍以及cookie效用,pythoncookie mg4377娱乐手机版,率先明显你要爬

先是鲜明你要爬取的靶子网址的表单提交格局,能够透过开辟者工具看到。这里推荐应用chrome。

python爬虫中get和post方法介绍以及cookie效用,pythoncookie

mg4377娱乐手机版,率先明显你要爬取的对象网址的表单提交格局,能够通过开荒者工具看到。这里推荐应用chrome。

这里小编用1陆叁信箱为例玩转python爬虫之cookie使用办法,面临post分页爬虫。

开采工具后再Network中,在Name选中想要明白的网址,右边headers里的request method正是付诸格局。status要是是200象征成功访问下边包车型地铁有头消息,cookie是您登6之后发生的贮存会话(session)消息的。第壹回访问该网页须要提供用户名和密码,之后只须要在headers里提供cookie就可以登入进去。

引入requests库,会提供get和post的方法。

代码示例:

import requests
import ssl

user_agent="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
accept='text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8'
accept_language='zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3'
upgrade='1'
headers={
  'User-Agent':user_agent,
  'Accept':accept,
  'Accept-Language':accept_language,
'Cookie':'....'#这里填入你登陆后产生的cookie
}
r = requests.get("http://mail.163.com/js6/main.jsp?sid=OAwUtGgglzEJoANLHPggrsKKAhsyheAT&df=mail163_letter#module=welcome.WelcomeModule|{}",headers=headers,verify=False)
fp = open("/temp/csdn.txt","w",encoding='utf-8')
fp.write(str(r.content,'utf-8'))
fp.close()

此处笔者引入了ssl库,因为作者先是次访问的网页证书过期。若是大家运用爬虫进入那样的网站时,会报错:SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

在requests的get和post方法中,有八个参数为verify,把她设为False后会禁掉证书的供给

首先鲜明你要爬取的靶子网址的表单提交格局,能够由此开荒者工具看到。这里推荐...

mg4377娱乐手机版 1

玩转python爬虫之cookie使用格局,pythoncookie

在此之前一篇小说大家上学了爬虫的可怜管理难题,那么接下去大家共同来看一下Cookie的应用。

何以要运用Cookie呢?

Cookie,指某个网址为了鉴定区别用户地方、进行session追踪而积攒在用户本地终端上的数量(平常通过加密)

比方有个别网址需求报到后技艺访问某些页面,在报到从前,你想抓取有些页面内容是分裂意的。那么大家能够选择Urllib二库保存我们登陆的Cookie,然后再抓取别的页面就完结指标了。

从前呢,大家亟须先介绍三个opener的定义。

1.Opener

当您获得三个UOdysseyL你采用3个opener(二个urllib贰.OpenerDirector的实例)。在前方,我们都以运用的暗中认可的opener,也正是urlopen。它是三个出色的opener,能够知晓成opener的2个出奇实例,传入的参数仅仅是url,data,timeout。

若是大家须要用到Cookie,只用那个opener是无法达到规定的标准指标的,所以大家需求创建更相像的opener来达成对Cookie的安装。

2.Cookielib

cookielib模块的重中之重效能是提供可存款和储蓄cookie的目的,以便于与urllib贰模块合营使用来拜会Internet能源。Cookielib模块非常强劲,大家可以运用本模块的CookieJar类的对象来捕获cookie并在接二连三连接请求时再也发送,比如能够实现模拟登入效用。该模块重要的靶子有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。

它们的关联:CookieJar —-派生—->FileCookieJar  —-派生—–>MozillaCookieJar和LWPCookieJar

一)获取Cookie保存到变量 先是,大家先使用库克ieJar对象完结获取cookie的意义,存储到变量中,先来感受一下

import urllib2
import cookielib
#声明一个CookieJar对象实例来保存cookie
cookie = cookielib.CookieJar()
#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler=urllib2.HTTPCookieProcessor(cookie)
#通过handler来构建opener
opener = urllib2.build_opener(handler)
#此处的open方法同urllib2的urlopen方法,也可以传入request
response = opener.open('http://www.baidu.com')
for item in cookie:
  print 'Name = ' item.name
  print 'Value = ' item.value

咱俩选用上述办法将cookie保存到变量中,然后打字与印刷出了cookie中的值,运维结果如下

Name = BAIDUID
Value = B07B663B645729F11F659C02AAE65B4C:FG=1
Name = BAIDUPSID
Value = B07B663B645729F11F659C02AAE65B4C
Name = H_PS_PSSID
Value = 12527_11076_1438_10633
Name = BDSVRTM
Value = 0
Name = BD_HOME
Value = 0

2)保存Cookie到文件 在上头的法门中,咱们将cookie保存到了cookie那些变量中,如若我们想将cookie保存到文件中该如何做呢?那时,大家将在动用

FileCookieJar这一个目的了,在那边大家使用它的子类Mozilla库克ieJar来贯彻Cookie的保存

import cookielib
import urllib2

#设置保存cookie的文件,同级目录下的cookie.txt
filename = 'cookie.txt'
#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.MozillaCookieJar(filename)
#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib2.HTTPCookieProcessor(cookie)
#通过handler来构建opener
opener = urllib2.build_opener(handler)
#创建一个请求,原理同urllib2的urlopen
response = opener.open("http://www.baidu.com")
#保存cookie到文件
cookie.save(ignore_discard=True, ignore_expires=True)

关于最终save方法的三个参数在此证实一下:

官方表达如下:

ignore_discard: save even cookies set to be discarded.
ignore_expires: save even cookies that have expiredThe file is overwritten if it already exists
由此可见,ignore_discard的情致是不怕cookies将被扬弃也将它保存下去,ignore_expires的意趣是只要在该文件中cookies已经存在,则覆盖原来的书文件写入,在那边,大家将那七个百分百装置为True。运营之后,cookies将被保留到cookie.txt文件中,大家查阅一下内容,附图如下

mg4377娱乐手机版 2

 3)从文件中拿走Cookie并访问 那就是说大家早已产生把Cookie保存到文件中了,要是之后想使用,能够使用上面包车型地铁形式来读取cookie并访问网址,感受一下

import cookielib
import urllib2

#创建MozillaCookieJar实例对象
cookie = cookielib.MozillaCookieJar()
#从文件中读取cookie内容到变量
cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True)
#创建请求的request
req = urllib2.Request("http://www.baidu.com")
#利用urllib2的build_opener方法创建一个opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
response = opener.open(req)
print response.read()

思量,若是大家的 cookie.txt 文件中保存的是某些人登入百度的cookie,那么大家领到出这一个cookie文件内容,就能够用以上办法模拟这厮的账号登六百度。

 四)利用cookie模拟网址登入 上边大家以大家学校的启蒙类别为例,利用cookie达成模拟登入,并将cookie新闻保存到文本文件中,来感受一下cookie大法吧!

小心:密码我改了啊,别偷偷登入本宫的选课系统 o(╯□╰)o

import urllib
import urllib2
import cookielib

filename = 'cookie.txt'
#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.MozillaCookieJar(filename)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
postdata = urllib.urlencode({
      'stuid':'201200131012',
      'pwd':'23342321'
    })
#登录教务系统的URL
loginUrl = 'http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bks_login2.login'
#模拟登录,并把cookie保存到变量
result = opener.open(loginUrl,postdata)
#保存cookie到cookie.txt中
cookie.save(ignore_discard=True, ignore_expires=True)
#利用cookie请求访问另一个网址,此网址是成绩查询网址
gradeUrl = 'http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bkscjcx.curscopre'
#请求访问成绩查询网址
result = opener.open(gradeUrl)
print result.read()

上述程序的规律如下

创立贰个分包cookie的opener,在造访登入的U福特ExplorerL时,将登入后的cookie保存下来,然后选用那几个cookie来访问别的网站。

如登入之后技术查看的战表查询呀,本学期课表呀等等网站,模拟登入就那样达成啦,是还是不是很光彩夺目?

好,小友大家要加油啊!大家明天得以安枕无忧得到网址信息了,接下去就是把网址内部有效内容提收取来,下一篇作品大家去会会正则表明式!

那边本身用1陆叁信箱为例

享用壹则对此网抓中面临post请求访问的页面大概在分页进程中要求post请求才干够访问的开始和结果!

您大概感兴趣的篇章:

  • 零基础写python爬虫之HTTP非凡管理
  • 零基础写python爬虫之urllib2使用指南
  • 零基础写python爬虫之爬虫编写全记录
  • 零基础写python爬虫之使用Scrapy框架编写爬虫
  • Python完成爬取天涯论坛神回复简单爬虫代码分享
  • Python完成抓取页面上链接的简易爬虫分享
  • python三大致实现微信爬虫
  • python编写爬虫小程序
  • Python制作轻松的网页爬虫
  • Python中urllib urllib2 cookielib模块编写爬虫实战

在此以前壹篇文章大家学习了爬虫的那四个管理难点,那么接下去大家壹块来看一下Cookie的使用。 为什...

开荒工具后再Network中,在Name选中想要领悟的网址,右边headers里的request method正是交给格局。status假设是200象征成功访问下边包车型大巴有头新闻,cookie是您登入之后发生的贮存会话(session)新闻的。第三回访问该网页须要提供用户名和密码,之后只须要在headers里提供cookie就足以登入进去。

 

引入requests库,会提供get和post的方法。

面包车型大巴post请求的网站是无法零参观访问问网站的,所以我们在网抓的进程中要求给请求传表单数据,上边看一下网页中post请求的网址:

代码示例:

mg4377娱乐手机版 3

import requests
import ssl

user_agent="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
accept='text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8'
accept_language='zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3'
upgrade='1'
headers={
  'User-Agent':user_agent,
  'Accept':accept,
  'Accept-Language':accept_language,
'Cookie':'....'#这里填入你登陆后产生的cookie
}
r = requests.get("http://mail.163.com/js6/main.jsp?sid=OAwUtGgglzEJoANLHPggrsKKAhsyheAT&df=mail163_letter#module=welcome.WelcomeModule|{}",headers=headers,verify=False)
fp = open("/temp/csdn.txt","w",encoding='utf-8')
fp.write(str(r.content,'utf-8'))
fp.close()

 post请求状态码和get请求的状态码1致,可是在参数中大家得以看出表单数据有相当的多的参数:

这里自个儿引进了ssl库,因为自个儿首先次访问的网页证书过期。固然大家利用爬虫进入那样的网址时,会报错:SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

mg4377娱乐手机版 4

在requests的get和post方法中,有叁个参数为verify,把她设为False后会禁掉证书的须求

 

编辑:mg4377娱乐手机版 本文来源:玩转python爬虫之cookie使用办法,面临post分页爬虫

关键词: Python