澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

在Python中利用mechanize模块模拟浏览器作用,爬虫

前日忙着实验室的项目,学习的年华相对很少。前后生可畏段时间刚早先接触python时,依样画葫芦照着写了多个爬虫,爬取了某些网址的图片。当见到一张张图纸自动出今后Computer屏幕上时,有个别比比较小成就感。笔者想超过一半人开端询问Python学习Python都以从爬虫最早的呢。最近又想着化解用Python完结学园网的电动登陆进程,每日登入学校网都要输入学号和密码,没有一个难以忘怀密码的职能正是伤天害理。为了偷点懒起初了学习,懒真的是上学的重力。记录一下读书的进度。

通晓怎么急速在命令行或然python脚本中实例化三个浏览器经常是十二分实惠的。
每一回本身索要做其它有关web的机关职务时,作者都利用这段python代码去模拟叁个浏览器。  

自学Python之四 爬虫根底知识储备,python爬虫

  首先,推荐八个关于python爬虫不错的博客:Python爬虫入门教程专栏   和 Python爬虫学习种类教程 。写的都充裕正确,作者就学到了不菲东西!在这里,作者就自身看到的学到的开展计算一下!

  爬虫正是一个缕缕的去抓去网页的前后相继,依照大家的急需获得大家想要的结果!但大家又要让服务器感到是大家人在通过浏览器浏览不是前后相继所为!归根结蒂正是大家因而程序访谈网址获得html代码,然后深入分析html代码获取平价内容的进程。上边让大家从最简便的爬虫初叶:

  爬取一个页面源代码

  在python中,抓取网页的库是urllib2。下边看三个最简便的例证:

1 import urllib2
2 response = urllib2.urlopen('http://www.baidu.com/')
3 html = response.read()
4 print html

  实施到位后您会发觉窗口中打出了一批代码,其实正是百度主页的html代码!(抵制百度!!!)

  大家来看一下urlopen的用法:

1 >>> help(urllib2.urlopen)
2 Help on function urlopen in module urllib2:
3 
4 urlopen(url, data=None, timeout=<object object>, cafile=None, capath=None, cadefault=False, context=None)

  第3个参数为url,第三个为要发送的多寡,第多个是逾期时间。别的的大家日常不用,就不解释了!第二五个参数不是必得的,因为都有暗许值,data暗许值为None,timeout私下认可值为socket._GLOBAL_DEFAUTL_TIMEOUT。传入url之后,大家获取一个response对象,再次回到的音信就个中!通过response.read(卡塔尔(قطر‎获取里面包车型客车内容。同样的大家可以协会二个Request类,作为参数字传送入urlopen中,那几个Request类中就包罗url,data,timeout等内容。下边包车型地铁代码大家得以写成这么:

1 import urllib2
2 
3 request = urllib2.Request("http://www.baidu.com")
4 response = urllib2.urlopen(request)
5 print response.read()

  那样是或不是很清晰明了了?在营造Request的时候大家家常便饭会投入过多内容,我们发出叁个倡议,服务器给咱们一个响应。三个轻松的爬虫就那样起飞了!

  POST和GET数据传送

  平时大家在浏览网页的时候不免涉及到登陆注册,填写表单,大概跳转到有个别页面,当时大家要跟服务器实行人机联作,向服务器发送数据,发送数据的法子呢正是Post和Get,两个的分裂在于GET形式直接以链接的花样走访,链接中包括全体的参数,如:  其中result=true正是Get传递的多寡,POST相当于Get就安然多了,它不会在链接上显得全数参数。

  Post方式:

 1 import urllib
 2 import urllib2
 3 
 4 values = {}
 5 values['username'] = "[email protected]"
 6 values['password'] = "******"
 7 data = urllib.urlencode(values) 
 8 url = "http://www.xxx.com/login?from=http://xxx/loginInfo"
 9 request = urllib2.Request(url,data)
10 response = urllib2.urlopen(request)
11 print response.read()

  在上头的代码中,大家创制了贰个字典values,设置了username和password的值,然后通过urlencode函数将字典进行转码,命名叫data,然后用url和data实例化了三个Request类,传递给urlopen(卡塔尔。

  Get方式:

 1 import urllib
 2 import urllib2
 3 
 4 values={}
 5 values['username'] = "[email protected]"
 6 values['password']="******"
 7 data = urllib.urlencode(values) 
 8 url = "http://www.xxx.com/login"
 9 geturl = url   "?" data
10 request = urllib2.Request(geturl)
11 response = urllib2.urlopen(request)
12 print response.read()

  在上面包车型客车代码中,大家创设了贰个字典values,设置了username和password的值,然后经过urlencode函数将字典进行转码,命名叫data,然后大家把data拼接在了url中,我们会拿走这么的url:

  在贯彻三个爬虫的时候,大家要依照须求,采纳post或然get方式开展访谈!不过除了上边那多少个还相当不够,以后网站为了制止爬虫去走访会开展部分检查评定,倘使检查评定不经过就不会响应你的伸手,为了完全模仿浏览器专业,大家往往要安装有个别headers属性,以致防盗链:

1 headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  ,
2                         'Referer':'http://www.zhihu.com/articles' }  

3 request = urllib2.Request(url, data, headers)#利用data headers构造Request对象

  某些网址恐怕会检验ip等,大家兴许会用到urllib2的代理,有个别网址响应过慢大家能够安装其timeout。在访谈网址的图景下大家大概会境遇有的网址破绽比超多,大家要在程序中张开始拍片卖(长期以来的try... except...获得错误音信内容卡塔尔:

 1 import urllib2
 2 
 3 req = urllib2.Request('http://www.xxx.com')
 4 try:
 5     urllib2.urlopen(req)
 6 except urllib2.URLError, e:
 7     if hasattr(e,"code"):
 8         print e.code
 9     if hasattr(e,"reason"):
10         print e.reason
11 else:
12     print "OK"

  不足为道的错误代码:400 不合法诉求  403 禁绝访谈  404 未找到财富  500 服务器内部错误 200 访谈成功。

  在网页访谈进度中,不可幸免的要用到cookies,大家的次序要效仿浏览器的作为,在做客网页的时候不常要带上特定的cookies,这样本事成功访谈网页。关于cookies大家用到了cookielib,cookielib模块提供可存款和储蓄cookie的目的,以便于与urllib2合营使用实行网址访谈,利用内部的CookieJar类捕获和殡葬cookie,落成模拟登陆,维持登入状态等。

  获取cookie保存到变量:

 1 import urllib2
 2 import cookielib
 3 #声明一个CookieJar对象实例来保存cookie
 4 cookie = cookielib.CookieJar()
 5 #利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
 6 handler=urllib2.HTTPCookieProcessor(cookie)
 7 #通过handler来构建opener
 8 opener = urllib2.build_opener(handler)
 9 #此处的open方法同urllib2的urlopen方法,也可以传入request
10 response = opener.open('http://www.baidu.com')
11 for item in cookie:
12     print 'Name = ' item.name
13     print 'Value = ' item.value
14 #利用cookie请求访问另一个网址
15 gradeUrl = 'http://www.baidu.com/xxx/xx'
16 #请求访问
17 result = opener.open(gradeUrl)
18 print result.read()

  上边程序创制了三个包括cookie的opener,在做客登录url的时候,将登陆后的cookie保存下来,然后选取那几个cookie来访问别的的网站。

  上边放三个HttpClient.py,里面包括了post和get方法,以致getcookies:

 1 import cookielib, urllib, urllib2, socket
 2 
 3 class HttpClient:
 4   __cookie = cookielib.CookieJar()
 5   __req = urllib2.build_opener(urllib2.HTTPCookieProcessor(__cookie))
 6   __req.addheaders = [
 7     ('Accept', 'application/javascript, */*;q=0.8'),
 8     ('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)')
 9   ]
10   urllib2.install_opener(__req)
11 
12   def Get(self, url, refer=None):
13     try:
14       req = urllib2.Request(url)
15       if not (refer is None):
16         req.add_header('Referer', refer)
17       return urllib2.urlopen(req, timeout=120).read()
18     except urllib2.HTTPError, e:
19       return e.read()
20     except socket.timeout, e:
21       return ''
22     except socket.error, e:
23       return ''
24 
25   def Post(self, url, data, refer=None):
26     try:
27       req = urllib2.Request(url, urllib.urlencode(data))
28       if not (refer is None):
29         req.add_header('Referer', refer)
30       return urllib2.urlopen(req, timeout=120).read()
31     except urllib2.HTTPError, e:
32       return e.read()
33     except socket.timeout, e:
34       return ''
35     except socket.error, e:
36       return ''
37 
38   def Download(self, url, file):
39     output = open(file, 'wb')
40     output.write(urllib2.urlopen(url).read())
41     output.close()
42 
43   def getCookie(self, key):
44     for c in self.__cookie:
45       if c.name == key:
46         return c.value
47     return ''
48 
49   def setCookie(self, key, val, domain):
50     ck = cookielib.Cookie(version=0, name=key, value=val, port=None, port_specified=False, domain=domain, domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)
51     self.__cookie.set_cookie(ck)

  

 

爬虫底蕴知识储备,python爬虫 首先,推荐五个关于python爬虫不错的博客:Python爬虫入门教程专栏 和 Python爬虫学习连串教程。...

正文实例为大家分享了python模拟登入体育场地的切实代码,供大家参谋,具体内容如下

1 抓包

事实上用Python达成学校网登陆已经有数不尽爱钻研的同学完结了,可是对于我那一个刚精通Python语法的小白来讲,代码艰深难懂,再者说每一种高校的学园网登入进度也是莫衷一是的,外人的代码毕竟不能够直接接收。由此作者从基本知识早先学起,再驾驭代码,再到它山之石能够攻玉。在这里些爱钻研同学的博客中,作者不住看见抓包那么些词。那什么样是抓包呢,找出一下就有答案。

抓包(packet capture)正是将网络传输发送与吸收接纳的数目包进行收缴、重发、编辑、转存等操作,也用来检查互联网安全--来自百度周详

野趣是领略了,但也只是清楚其字面上的野趣,对于真正掌握还是要去施行技巧有越来越深的回味。

import mechanize
import cookielib
# Browser
br = mechanize.Browser()
# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
# Browser options
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
# Follows refresh 0 but not hangs on refresh > 0
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
# Want debugging messages?
#br.set_debug_http(True)
#br.set_debug_redirects(True)
#br.set_debug_responses(True)
# User-Agent (this is cheating, ok?)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

效仿表单提交的法规:

2 Fiddler

Fiddler是生龙活虎款抓包工具,至于为啥下载了那款软件,也是看推荐的人超级多。那么为了兑现机关登陆军学园园网的效能,小编又伊始了上学Fiddler软件的采纳。看了这几篇博客也基本有了二个摸底。

后日你收获了四个浏览器的事必躬亲,br对象。使用这些指标,便得以张开二个页面,使用形似如下的代码:  

咱俩都清楚Http是无状态的,所以当咱们付出的数量和浏览器中健康提交同样,那么服务器就能够回去和浏览器中相像的响应。所以我们那边来模拟浏览器表单提交登入西藏外贸大学的教室

3 Http央求响应

问询抓包工具的采纳还相当不够,瞅着Fiddler里面展现的数目稀里糊涂。还得随着学习者软件里体现的是何等数据,数据是何许意思,小编索要什么样数据。互连网文化及其贫乏的自己任由寻觅什么见到的结果都以非凡的知识。那么内部最根本的是Http诉求和响应了。笔者又搜索到了以下几篇博客,对于这个也可以有了一些中央的认知。我们的学校网实际约等于三个Http央浼响应的进度,只要驾驭了央求的网站,伏乞的多少甚至其余相应的供给,模拟登陆也就贯彻了概况上了。

  • HTTP之央求响应内容详明
  • http央求与响应全经过

多谢网络,谢谢这一个不仅仅爱钻研还爱进献的校友们。

# Open some site, let's pick a random one, the first that pops in mind:
r = br.open('http://google.com')
html = r.read()
# Show the source
print html
# or
print br.response().read()
# Show the html title
print br.title()
# Show the response headers
print r.info()
# or
print br.response().info()
# Show the available forms
for f in br.forms():
  print f
# Select the first (index zero) form
br.select_form(nr=0)
# Let's search
br.form['q']='weekend codes'
br.submit()
print br.response().read()
# Looking at some results in link format
for l in br.links(url_regex='stockrt'):
  print l

率先大家先用浏览器查看页面源代码找到要交给的form表单:

4 Python相关知识

幼功性知识后面基本精晓的差不离了,剩下的就是达成工具Python的学习了。看了相关同学的代码后,首要使用到了以下四个模块,urllib、urllib2、cookielib。

  • urllib 和urllib2都以经受UHighlanderL诉求的有关模块,然则urllib2能够采取两个Request类的实例来设置URL央求的headers,urllib仅能够选择UEvoqueL。
  • urllib提供urlencode方法用来GET查询字符串的发生,而urllib2未有。那是怎么urllib常和urllib2一齐行使的原因。前段时间的大部分http央浼都以经过urllib2来拜望的。
  • cookielib是放置的操作cookie模块,合作urllib、urllib2模块可以随便地效法登入、爬取数据了。

对此这个文化,以下博客有相比较详细的介绍。

  • python爬虫 - Urllib库及cookie的使用
  • 至于Cookie的规律、功用,不一样以至利用
  • python—cookielib模块对cookies的操作
  • python的httplib、urllib和urllib2的区分及用

风姿洒脱旦你探访的网站需求表明(http basic auth卡塔尔(英语:State of Qatar),那么:  

澳门新浦京娱乐场网站 1

5 实现

开发大家的Fiddler抓包工具,设置一下Filter,设置Host地址,只抓取登入高校网页面包车型地铁新闻。澳门新浦京娱乐场网站 2

开荒学园网登陆页面,输入账号密码,点击登陆。
澳门新浦京娱乐场网站 3
在Fiddler中我们就可以看出任何的登陆进度。澳门新浦京娱乐场网站 4

可以看出左边共有4个UTucsonL地址,第三个为报到页面网站,但那并不是数据交由央浼的U宝马X5L,因并非大家必要的ULX570L。第3个UEnclaveL才是漫天达成进度的首要。点击Inspectors按键,能够见见Post央浼的全数音信。下边包车型客车UTiguanL就是我们模拟登入所急需的U牧马人L。上边天青框框起来的正是post的表单数据,我们在模仿的时候须要组织那一个表单。中间是大家协会Header所须求的信息。得到那些就能够打开代码的编纂啦。参考

# -*- coding: utf-8 -*-
import urllib2
import urllib
import cookielib
# 构建opener
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
#posturl,即post方法所提交的url
post_url ='http://202.114.64.105:8080/eportal/userV2.do?method=login&param=true&wlanuserip=2f4818f809bb03949855832f02b16d5e&wlanacname=1e45aef6b6ca19a225a0ea53d741eeac&ssid=&nasip=5e15ad0ffd6b5c5c547d6756a5026574&snmpagentip=&mac=0b7f9d26b9fca3c8440b6a736dd7cd9d&t=wireless-v2&url=096e8e7059e430e083d28bd1997d6c398f3c08c737495b2fe98713e6195541bf2880d0d92acf2250&apmac=&nasid=1e45aef6b6ca19a225a0ea53d741eeac&vid=bee7bb6a6937bb74&port=a0a45c9f5ae3c42f&nasportid=ac41d60d7f1382084fc1d18ad6536cc7ff1d8558fc05d393faf4237ae4c8c8ab&username=2017xxxxxxxxx&pwd=xxxxxx'
# 根据抓包信息 构造表单
data = {
    'is_auto_land': 'false',
    'usernameHidden': '2017xxxxxxxxx',
    'username_tip': 'Username',
    'username': '2017xxxxxxxxx',
    'strTypeAu': '',
    'uuidQrCode': '',
    'authorMode': '',
    'pwd_tip': 'Password',
    'pwd': 'xxxxxx'
}
post_data = urllib.urlencode(data)
#根据抓包信息构造headers
headers = {
    'Accept': "text/html,application/xhtml xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Connection': 'keep-alive',
    'Host': '202.114.64.105:8080',
    'Referer': 'http://202.114.64.105:8080/eportal/index.jsp?wlanuserip=2f4818f809bb03947c121d8e304df716&wlanacname=1e45aef6b6ca19a225a0ea53d741eeac&ssid=&nasip=5e15ad0ffd6b5c5c547d6756a5026574&snmpagentip=&mac=0b7f9d26b9fca3c8440b6a736dd7cd9d&t=wireless-v2&url=096e8e7059e430e083d28bd1997d6c398f3c08c737495b2fe98713e6195541bf2880d0d92acf2250&apmac=&nasid=1e45aef6b6ca19a225a0ea53d741eeac&vid=bee7bb6a6937bb74&port=a0a45c9f5ae3c42f&nasportid=ac41d60d7f1382084fc1d18ad6536cc7ff1d8558fc05d393faf4237ae4c8c8ab',
    'User-Agent':  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
}
req = urllib2.Request(post_url, post_data, headers)
content = opener.open(req)
#print content.read().decode('gbk').encode('utf-8')
print "连接成功"

代码中关系账号密码都都用xxx替代。整个代码极粗略,可是里面提到的学识不菲,当然那是对此小白来讲的。

追思今天的就学进程,小编只想说感激互连网,以致谢谢那一个不独有爱钻研还爱进献的同班们,是你们的计算让新生的人少走非常多弯路。前天在查找自动登入高校网的时候,在博客园上看到有人回答那是最简便最基本功的难点,实现起来非凡easy,小编马上想这哪儿轻松了,完全浑浑噩噩呀。站在几日前掌握多少相关知识后,小编竟然以为那回答还挺有道理的,实乃调用一下连锁的库,结构一下连锁的表单、header就OK。加上大家高校的学校网对于密码未有加密,也远非验证码,难题变得越来越简约。

懒是上学的引力,而通过落到实处部分小功能也是准确的学习情势,比起枯燥的看书来得有趣些。继续攻读~

# If the protected site didn't receive the authentication data you would
# end up with a 410 error in your face
br.add_password('http://safe-site.domain', 'username', 'password')
br.open('http://safe-site.domain')

接下去大家要博取表单中的input 包涵hidden,因为hidden也会随着表单一同提交.找到账号和密码对应的name  届时候咱们要求用自个儿的账号填写的.

出于此前使用了Cookie Jar,你无需管住网址的登录session。也正是无需管理须求POST四个客商名和密码的情事。
常常这种意况,网址会呈请你的浏览器去存储叁个session cookie除非你再一次登入,
而导致您的cookie中蕴涵这几个字段。全数那个业务,存款和储蓄和重发那一个session cookie已经被Cookie Jar解决了,爽吧。
同有难题间,你能够管理你的浏览器历史:  

澳门新浦京娱乐场网站 5

# Testing presence of link (if the link is not found you would have to
# handle a LinkNotFoundError exception)
br.find_link(text='Weekend codes')
# Actually clicking the link
req = br.click_link(text='Weekend codes')
br.open(req)
print br.response().read()
print br.geturl()
# Back
br.back()
print br.response().read()
print br.geturl()

拿到到全数的要交给的表单内容后,将账号和密码替换到本人的账号和密码,提交诉求.获取cookie并保留在cookie中。

下载贰个文件:  

代码如下(Python2.7版本 和Python3都其实都大约卡塔尔国:

# Download
f = br.retrieve('http://www.google.com.br/intl/pt-BR_br/images/logo.gif')[0]
print f
fh = open(f)
# -*- coding:utf-8 -*- 
import urllib 
import urllib2 
import cookielib 
import bs4 

result = urllib2.urlopen("http://222.200.122.171:7771/login.aspx") 
soup = bs4.BeautifulSoup(result, "html.parser") 

logindiv = soup.find("form", attrs={"name": "aspnetForm"}) 
Allinput = logindiv.findAll("input") 
inputData = {} 
for oneinput in Allinput: 
 if oneinput.has_attr('name'): 
  if oneinput.has_attr('value'): 
   inputData[oneinput['name']] = oneinput['value'] 
  else: 
   inputData[oneinput['name']] = "" 
inputData['ctl00$ContentPlaceHolder1$txtPas_Lib'] = '*****' 
inputData['ctl00$ContentPlaceHolder1$txtUsername_Lib'] = '*******' 

filename = 'cookie.txt' 
# 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件 
cookie = cookielib.MozillaCookieJar(filename) 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) 
postdata = urllib.urlencode(inputData) 
result2 = opener.open("http://222.200.122.171:7771/login.aspx", postdata) 
cookie.save(ignore_discard=True, ignore_expires=True) 
#登录后 要访问的url 
bookUrl = "http://222.200.122.171:7771/user/userinfo.aspx" 
result=opener.open(bookUrl) 
print result.read() 

为http设置代理  

如上正是本文的全体内容,希望对大家的就学抱有利于,也指望大家多多点拨脚本之家。

# Proxy and user/password
br.set_proxies({"http": "joe:password@myproxy.example.com:3128"})
# Proxy
br.set_proxies({"http": "myproxy.example.com:3128"})
# Proxy password
br.add_proxy_password("joe", "password")

你恐怕感兴趣的篇章:

  • Python Requests模拟登入达成体育场地座位自动预定
  • Python爬虫模拟登陆带验证码网址
  • python选用requests库模拟登陆和抓取多少的粗略示例
  • Python使用Socket(Https卡塔尔国Post登录百度的实今世码
  • python使用rsa加密算法模块模拟今日头条博客园登入
  • 用Python达成web端客户登入和挂号功效的课程
  • Python完成模拟登入及表单提交的办法
  • 动用Python中的cookielib模拟登入网址
  • python实现网址的效仿登入
  • Python的Flask框架中实现简单的报到作用的学科

唯独,假设您只想要展开网页,而无需前边全数美妙的效劳,那您能够:  

# Simple open?
import urllib2
print urllib2.urlopen('http://stockrt.github.com').read()
# With password?
import urllib
opener = urllib.FancyURLopener()
print opener.open('http://user:password@stockrt.github.com').read()

在Python中利用mechanize模块模拟浏览器作用,爬虫根基知识储备。您能够因此 mechanize官方网址 , mechanize文档 和ClientForm的文档问询更加多。

原稿来自:

——————————————————————————————

终极来聊下通过代码访谈页面时的二个很主要的定义和技巧:cookie

大家都理解HTTP是无连接的情事左券,可是客商端和劳务器端必要保持一些相互影响音信,举例cookie,有了cookie,服务器本事知道刚刚是其生机勃勃客户登入了网址,才会予以顾客端访谈一些页面包车型客车权杖。
比方说用浏览器登录今日头条天涯论坛,必需首先登场入,登入成功后,展开别的的网页本事够访谈。用程序登陆天涯论坛今日头条或别的验证网址,关键点也在于需求保留cookie,之后顺手cookie再来访问网址,工夫够达到效果。
此间就需求Python的cookielib和urllib2等的十二分,将cookielib绑定到urllib2在一起,就可以预知在央求网页的时候顺便cookie。
具体做法,首先第一步,用firefox的httpfox插件,在浏览器衷起头浏览今日头条新浪首页,然后登入,从httpfox的笔录中,查看每一步发送了这么些数据须要了那些UEvoqueL;之后再python里面,模拟那么些进度,用urllib2.urlopen发送客商名密码到登录页面,获取登录后的cookie,之后拜望别的页面,获取天涯论坛数据。

cookielib模块的严重性意义是提供可存款和储蓄cookie的目的,以便于与urllib2模块合营使用来访谈Internet能源。比方能够应用本模块的CookieJar类的对象来捕获cookie并在三番一遍连接央浼时再度发送。coiokielib模块用到的靶子主要有下边多少个:CookieJar、FileCookieJar、MozillaCookieJar、LWP库克ieJar。
urllib模块和urllib模块相同,用来开发UGL450L并从当中获取数据。与urllib模块区别的是,urllib模块不只能够行使urlopen(卡塔尔函数还是可以自定义Opener来访问网页。相同的时间要留意:urlretrieve(卡塔尔国函数是urllib模块中的,urllib2模块中子虚乌有该函数。但是接纳urllib2模块时相仿都离不开urllib模块,因为POST的数额需求运用urllib.urlencode(卡塔尔国函数来编码。

cookielib模块日常与urllib2模块合作使用,首要用在urllib2.build_oper(卡塔尔(قطر‎函数中作为urllib2.HTTPCookieProcessor(卡塔尔国的参数。使用办法如上边登六人人网的代码:  

#! /usr/bin/env python
#coding=utf-8
import urllib2
import urllib
import cookielib
data={"email":"用户名","password":"密码"} #登陆用户名和密码
post_data=urllib.urlencode(data)
cj=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
headers ={"User-agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}
req=urllib2.Request("http://www.renren.com/PLogin.do",post_data,headers)
content=opener.open(req)
print content.read().decode("utf-8").encode("gbk")

切切实实请参见:

  Python使用cookielib和urllib2模拟登录搜狐乐乎并抓取数据

  urllib2模块

  cookielib — Cookie handling for HTTP clients

您或许感兴趣的篇章:

  • Python模拟鼠标点击达成方式(将因而实例自动化模拟在360浏览器中自动找寻python卡塔尔国
  • Python使用win32com落到实处的依葫芦画瓢浏览器成效示例
  • 浅谈python爬虫使用Selenium模拟浏览器行为
  • Python使用Selenium模块达成模拟浏览器抓取Tmall商品美味的食品音讯意义示例
  • 澳门新浦京娱乐场网站,Python使用Selenium模块模拟浏览器抓取缩手观察鱼直播间音信示例
  • 对于Python的框架中一些对话程序的军事关押
  • Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
  • 用Python中的wxPython达成最基本的浏览器功用
  • python3贯彻读取chrome浏览器cookie
  • 详细明白Python四线程Selenium跨浏览器测量检验
  • Python达成模拟浏览器乞求及会话保持操作示例

本文由澳门新浦京娱乐场网站发布于www.146.net,转载请注明出处:在Python中利用mechanize模块模拟浏览器作用,爬虫