时间:2015-08-25 来源:

python爬虫-Urllib库及cookie的使用 【系统运维】

http://blog.csdn.net/pipisorry/article/details/47905781

lz提示一点网页外包接活,python3中urllib包括了py2中的urllib+urllib2.[python2和python3的区别、转换及共存 - urllib]

py3:

http://blog.csdn.net/pipisorry/article/details/47905781

 3)从文件中获取Cookie并访问 那么我们已经做到把Cookie保存到文件中了,网页外包接活如果以后想使用,网页切图价格可以利用下面的方法来读取cookie并访问网站,div+css制作 ignore_expires=True) # 从文件中读取cookie内容到变量 req = urllib2.Request("http://www.baidu.com") # 创建请求的request opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) # 利用urllib2的build_opener方法创建一个opener response = opener.open(req) print response.read()设想,html静态页面制作那么我们提取出这个cookie文件内容,psd转html就可以用以上方法模拟这个人的账号登录百度.  4)利用cookie模拟网站登录 下面我们以我们学校的教育系统为例,html切图制作利用cookie实现模拟登录网页外包接活,之后写入文件 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) postdata = urllib.urlencode({ 'stuid': '201200131012', postdata) # 模拟登录承接网页制作, ignore_expires=True) # 保存cookie到cookie.txt中 gradeUrl = 'http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bkscjcx.curscopre' # 利用cookie请求访问另一个网址web切图报价,在访问登录的URL时符合w3c标准,将登录后的cookie保存下来,符合w3c标准然后利用这个cookie来访问其他网址.如登录之后才能查看的成绩查询网页外包接活,本学期课表等等网址,jpg或psd转html模拟登录就这么实现啦.[Python爬虫入门六之Cookie的使用] from:http://blog.csdn.net/pipisorry/article/details/47905781

设置Timeout  urlopen方法第三个参数就是timeout的设置web前端制作,可以设置等待多久超时,web前端制作为了解决一些网站实在响应过慢而造成的影响. 例如下面的代码承接网页制作,如果第二个参数data为空那么要特别指定是timeout是多少,兼职手机网页制作写明形参web切图报价,如果data已经传入,网站div+css则不必声明. import urllib2 response = urllib2.urlopen('http://www.baidu.com',data, 10)

py3:

设置Headers 有些网站不会同意程序直接用上面的方式进行访问,网页外包接活如果识别有问题web前端制作,那么站点根本不会响应,div+css制作所以为了完全模拟浏览器的工作承接网页制作,可以理解成opener的一个特殊实例web切图报价,data,只用这个opener是不能达到目的的网页外包接活,所以我们需要创建更一般的opener来实现对Cookie的设置. Cookielib cookielib模块的主要作用是提供可存储cookie的对象,网页外包接活以便于与urllib2模块配合使用来访问Internet资源.Cookielib模块非常强大web前端制作,我们可以利用本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,web前端制作比如可以实现模拟登录功能.该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar. 它们的关系:CookieJar —-派生—->FileCookieJar  —-派生—–>MozillaCookieJar和LWPCookieJar

2)保存Cookie到文件 上面我们将cookie保存到了cookie这个变量中承接网页制作,如果我们想将cookie保存到文件中该怎么做呢?这时,div前端切图我们就要用到FileCookieJar这个对象了web切图报价,在这里我们使用它的子类MozillaCookieJar来实现Cookie的保存 import cookielib import urllib2 filename = 'cookie.txt' # 设置保存cookie的文件,web切图报价同级目录下的cookie.txt cookie = cookielib.MozillaCookieJar(filename) # 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件 handler = urllib2.HTTPCookieProcessor(cookie) # 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器 opener = urllib2.build_opener(handler) # 通过handler来构建opener response = opener.open("http://www.baidu.com") # 创建一个请求,符合w3c标准原理同urllib2的urlopen cookie.save(ignore_discard=True, ignore_expires=True) # 保存cookie到文件 py3:

http://blog.csdn.net/pipisorry/article/details/47905781

使用cookie登录的步骤 1)获取Cookie保存到变量 首先,jpg或psd转html我们先利用CookieJar对象实现获取cookie的功能web前端制作,存储到变量中,web前端制作先来感受一下 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

数据传送POST和GET 上面的程序演示了最基本的网页抓取,兼职手机网页制作不过web切图报价,现在大多数网站都是动态网页,网站div+css需要你动态地传递参数给它符合w3c标准,它做出对应的响应.所以,符合w3c标准在访问时网页外包接活,然后你得到服务器处理之后的响应

Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 比如说有些网站需要登录后才能访问某个页面,div+css制作在登录之前承接网页制作,然后再抓取其他页面就达到目的了. opener的概念 当你获取一个URL你使用一个opener(一个urllib2.OpenerDirector的实例).在前面web切图报价,也就是urlopen.

py3:

http://blog.csdn.net/pipisorry/article/details/47905781

Note:py3中opener也可以这样使用:

import urllib.request, urllib.error import http.cookiejar URL_ROOT = 'http://www.jobbole.com/login/' values = {'name': '******', like Gecko) Chrome/44.0.2403.157 Safari/537.36' headers = {'User-Agent': user_agent} cookie_filename = 'cookie.txt' cookie = http.cookiejar.LWPCookieJar(cookie_filename) handler = urllib.request.HTTPCookieProcessor(cookie) opener = urllib.request.build_opener(handler) request = urllib.request.Request(URL_ROOT, headers) try: response = opener.open(request) except urllib.error.URLError as e: print(e.reason) cookie.save(ignore_discard=True, ignore_expires=True) # 保存cookie到cookie.txt中 for item in cookie: print('Name = ' + item.name) print('Value = ' + item.value)

这样,div前端切图我们设置了一个headers,在构建request时传入,web切图报价在请求时符合w3c标准,就加入了headers传送,符合w3c标准服务器若识别了是浏览器发来的请求网页外包接活,否则出现错误TypeError: POST data should be bytes or an iterable of bytes. It cannot be of type str.   python2.7 是 ascii,都是string类型承接网页制作,要通过encode()转换.

import urllib2 response = urllib2.urlopen("http://www.baidu.com") print response.read()

扒网页的栗子 py2:

2. save方法的两个参数的官方解释:

数据传送POST和GET两种方式及区别 最重要的区别是GET方式是直接以链接形式访问web切图报价,链接中包含了所有的参数,网站div+css当然如果包含了密码的话是一种不安全的选择符合w3c标准,不过你可以直观地看到自己提交了什么内容.POST则不会在网址上显示所有的参数,符合w3c标准不过如果你想直接查看提交了什么就不太方便了网页外包接活,可以酌情选择. POST方式: 上面说的data参数就是用在这里的,网页外包接活我们传送的数据就是这个参数data. import urllib import urllib2   values = {"username":"1016903103@qq.com",data) response = urllib2.urlopen(request) print response.read() 我们引入了urllib库承接网页制作,当然上述代码可能登陆不进去web切图报价,因为还要做一些设置头部header的工作,web切图报价或者还有一些参数没有设置全符合w3c标准,还没有提及到在此就不写上去了,html切图制作在此只是说明登录的原理.我们需要定义一个字典网页外包接活,参数我设置了username和password,下面利用urllib的urlencode方法将字典编码,web前端制作命名为data,构建request时传入两个参数,div前端切图url和data,运行程序,web切图报价即可实现登陆符合w3c标准,返回的便是登陆后呈现的页面内容.当然你可以自己搭建一个服务器来测试一下. GET方式: 至于GET方式我们可以直接把参数写到网址上面,符合w3c标准直接构建一个带参数的URL出来即可. import urllib import urllib2 values={} values['username'] = "1016903103@qq.com" values['password']="XXXX" data = urllib.urlencode(values)  url = "http://passport.csdn.net/account/login" geturl = url + "?"+data request = urllib2.Request(geturl) response = urllib2.urlopen(request) print response.read() Note:你可以print geturl,发现其实就是原来的url加?然后加编码后的参数http://passport.csdn.net/account/login?username=1016903103%40qq.com&password=XXXX和我们平常GET访问方式一模一样web前端制作,这样就实现了数据的GET方式传送.

拆分这些请求,web前端制作我们只看一第一个请求承接网页制作,你可以看到,兼职手机网页制作有个Request URL,下面便是response.这个头中包含了许许多多是信息符合w3c标准,有文件编码啦,符合w3c标准压缩方式网页外包接活,请求的agent等等. 其中,网页外包接活agent就是请求的身份web前端制作,如果没有写入请求身份,div+css制作那么服务器不一定会响应承接网页制作,例如下面的例子web切图报价,小伙伴们看一下设置格式就好. import urllib   import urllib2  

u = urllib.URLopener() # Python 3: urllib.request.URLOpener u.addheaders = [] u.addheader('User-Agent', 'de-DE,en;q=0.8') u.addheader('Accept', application/xml;q=0.9, image/png, image/jpeg, image/x-xbitmap, */*;q=0.1') f = u.open(url) content = f.read() f.close()

[Python爬虫入门三之Urllib库的基本使用]

2. 注意URL_ROOT不能编码,jpg或psd转htmlURL_ROOT = URL_ROOT.encode(),否则会出错:unknown url type: b'http

我们将这两个全部设置为True.运行之后,web前端制作cookies将被保存到cookie.txt文件中承接网页制作,我们查看一下内容

对付防盗链 另外,兼职手机网页制作我们还有对付”反盗链”的方式web切图报价,服务器会识别headers中的referer是不是它自己,网站div+css如果不是符合w3c标准,有的服务器不会响应,符合w3c标准所以我们还可以在headers中加入referer 例如我们可以构建下面的headers headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  , 'Referer':'http://www.zhihu.com/articles' }   同上面的方法,网页外包接活在传送请求时把headers传入Request参数里web前端制作,这样就能应付防盗链了. headers的一些属性需要特别注意一下 User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求 Content-Type : 在使用 REST 接口时,div+css制作服务器会检查该值,如 RESTful/SOAP 调用时使用 application/json : 在 JSON RPC 调用时使用 application/x-www-form-urlencoded : 浏览器提交 Web 表单时使用 在使用服务器提供的 RESTful 或 SOAP 服务时web切图报价, Content-Type 设置错误会导致服务器拒绝服务 其他的有必要的可以审查浏览器的headers内容,web切图报价在构建时写入同样的数据即可.

什么是cookies?

py3:

版权声明:本文为博主http://blog.csdn.net/pipisorry原创文章符合w3c标准, postdata, headers) response = opener.open(request) 或者:

设置Proxy(代理) urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy.假如一个网站它会检测某一段时间某个IP 的访问次数,网页外包接活如果访问次数过多web前端制作,它会禁止你的访问.所以你可以设置一些代理服务器来帮助你做工作,web前端制作每隔一段时间换一个代理承接网页制作,网站君都不知道是谁在捣鬼了! 代理的设置用法 import urllib2 enable_proxy = True proxy_handler = urllib2.ProxyHandler({"http" : 'http://some-proxy.com:8080'}) null_proxy_handler = urllib2.ProxyHandler({}) if enable_proxy:     opener = urllib2.build_opener(proxy_handler) else:     opener = urllib2.build_opener(null_proxy_handler) urllib2.install_opener(opener)

FileCookieJar(filename):创建FileCookieJar实例,div前端切图检索cookie信息并将信息存储到文件中web切图报价,filename是文件名.

http://blog.csdn.net/pipisorry/article/details/47905781

使用DebugLog 可以通过下面的方法把 Debug Log 打开,web切图报价这样收发包的内容就会在屏幕上打印出来符合w3c标准,方便调试,符合w3c标准这个也不太常用网页外包接活, httpsHandler) urllib2.install_opener(opener) response = urllib2.urlopen('http://www.baidu.com')

第一行调用的是urllib库里面的urlopen方法web前端制作,这个网址是百度首页承接网页制作,协议是HTTP协议,兼职手机网页制作当然你也可以把HTTP换做FTP,HTTPS 等等符合w3c标准,只是代表了一种访问控制协议.

ignore_discard: save even cookies set to be discarded. 即使cookies将被丢弃也将它保存下来 ignore_expires: save even cookies that have expiredThe file is overwritten if it already exists.如果在该文件中cookies已经存在,符合w3c标准则覆盖原文件写入

3. python3中如果直接使用http.cookiejar.CookieJar(filename)的方式会出错:self._policy._now = self._now = int(time.time()) AttributeError: 'str' object has no attribute '_now'.注意要将CookieJar改为LWPCookieJar.

Cookie的使用

怎样扒网页?

import urllib.request from urllib.parse import urlencode URL_ROOT = r'http://d.weibo.com/#_loginLayer_1440327422006' values = {'username': '***, data) user_agent = r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, data, headers) response = urllib.request.urlopen(request) page = response.read() print(page)

import urllib.request import http.cookiejar URL_ROOT = r'http://d.weibo.com/' cookie = http.cookiejar.CookieJar() # 声明一个CookieJar对象实例来保存cookie handler = urllib.request.HTTPCookieProcessor(cookie) # 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器 opener = urllib.request.build_opener(handler) # 通过handler来构建opener response = opener.open(URL_ROOT) # 此处的open方法同urllib2的urlopen方法,兼职手机网页制作也可以传入request for item in cookie: print('Name = ' + item.name) print('Value = ' + item.value) 我们使用以上方法将cookie保存到变量中web切图报价,运行结果如下 Name = YF-Page-G0 Value = dc8d8d4964cd93a7c3bfa7640c1bd10c

比如上面的两行代码符合w3c标准,我们可以这么改写 import urllib2  request = urllib2.Request("http://www.baidu.com") response = urllib2.urlopen(request) print response.read()

构造Requset 其实上面的urlopen参数可以传入一个request请求,html切图制作它其实就是一个Request类的实例网页外包接活,Data等等的内容.

urlopen一般接受三个参数web前端制作, data,第二个参数data是访问URL时要传送的数据web切图报价,第三个timeout是设置超时时间. 第二三个参数是可以不传送的,web切图报价data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT. 第一个参数URL是必须要传送的,符合w3c标准在这个例子里面我们传送了百度的URL,执行urlopen方法之后,jpg或psd转html返回一个response对象web前端制作,返回信息便保存在这里面. response.read() response对象有一个read方法,web前端制作可以返回获取到的网页内容.

urllib.request.install_opener(opener)request = urllib.request.Request(URL_ROOT, headers)response = urllib.request.urlopen(request)

MozillaCookieJar(filename):创建与Mozilla cookies.txt文件兼容的FileCookieJar实例.

from urllib import request response = request.urlopen("http://www.baidu.com") print(response.read().decode()) 真正的程序就两行web切图报价,运行结果:

其实就是根据URL来获取它的网页信息,网站div+css虽然我们在浏览器中看到的是一幅幅优美的画面符合w3c标准,但是其实是由浏览器解释才呈现出来的,符合w3c标准实质它是一段HTML代码网页外包接活,加 JS、CSS.

ref:Python爬虫入门五之URLError异常处理

Note: 

1. 不同cookie写入文件方法的解释:

Note: 

LWPCookieJar(filename):创建与libwww-perl Set-Cookie3文件兼容的FileCookieJar实例.

使用 HTTP 的 PUT 和 DELETE 方法 http协议有六种请求方法,网页外包接活get,put,post,我们有时候需要用到PUT方式或者DELETE方式请求. PUT:这个方法比较少见.HTML表单也不支持这个.本质上来讲符合w3c标准,都是向服务器发送数据网页外包接活,但它们之间有一个重要区别,网页外包接活PUT通常指定了资源的存放位置web前端制作,而POST则没有,web前端制作POST的数据存放位置由服务器自己决定. DELETE:删除某一个资源.基本上这个也很少见承接网页制作,只能使用比较低层的 httplib 库.虽然如此web切图报价,我们还是能通过下面的方式,web切图报价使 urllib2 能够发出 PUT 或DELETE 的请求符合w3c标准,不过用的次数的确是少,符合w3c标准在这里提一下. import urllib2 request = urllib2.Request(uri, data=data) request.get_method = lambda: 'PUT' # or 'DELETE' response = urllib2.urlopen(request)

import urllib.request request = urllib.request.Request("http://www.baidu.com") response = urllib.request.urlopen(request) print(response.read().decode()) 运行结果是完全一样的,jpg或psd转html只不过中间多了一个request对象web前端制作,推荐大家这么写,web前端制作因为在构建请求时还需要加入好多内容承接网页制作,服务器响应请求得到应答web切图报价,再点headers才会出现.

Note:response.read()要decode才能正常显示html内容符合w3c标准,否则会是title="\xe7\x99\xbe\xe5\xba\xa6\xe6\x90\x9c\xe7\xb4\xa2"而不是title="百度搜索"了 这个网页的源码已经被我们扒下来了 分析这两行代码

py3-2:

如果把网页比作一个人,符合w3c标准那么HTML便是他的骨架网页外包接活,JS便是他的肌肉,网页外包接活CSS便是它的衣服.所以最重要的部分是存在于HTML中的.

打开我们的浏览器(Chrome),打开网络监听network,比如知乎登录之后,兼职手机网页制作这个页面包含了许许多多的内容web切图报价,这些内容也不是一次性就加载完成的,web切图报价实质上是执行了好多次请求符合w3c标准,一般是首先请求HTML文件,html切图制作然后加载JS,CSS 等等,网页外包接活经过多次请求之后web前端制作,网页的骨架和肌肉全了,web前端制作整个网页的效果也就出来了.

url = 'http://www.server.com/login' user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'   values = {'username' : 'cqc', data, headers)   response = urllib2.urlopen(request)   page = response.read() 

点击次数:14703
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日最佳实践之Android代码规范 【Web前端】2015年04月13日散列技术之链地址法(基于无序链表) 【综合】2015年08月24日一个基于QT的解析interproscan结果的C++成员函数 【移动开发】2015年04月02日Mysql数据库的导出【Web前端】2014年12月30日1412201721-ny-街区最短路径问题【编程语言】2014年12月22日VMWare10下ubuntu联网设置 【编程语言】2014年11月17日最长无重复子串的简单实现【编程语言】2014年12月03日Android中service用法 【编程语言】2015年05月19日C++经典面试题(八) 【Web前端】2015年06月30日jQuery弹出(alert)select选择的值2014年01月29日错误代码:1582Incorrectparametercountinthecalltonativefunction'str_to_date' 【数据库】2015年07月07日通过onTouch来确定点击的是listView哪一个item 【Web前端】2014年12月16日erujewrwyrgdrrr 【编程语言】2015年02月09日SVN服务器版本更新后Axure共享文件的检出【系统运维】2015年02月15日EJB学习笔记六(EJB中的拦截器)【综合】2015年07月30日Ext对基本类型的扩展ext,extjs,format2014年01月29日js将控件隐藏的方法及display属性介绍2014年01月29日应用WEB标准实例:列表页面的制作2014年01月29日何新生的英语史——终极出路:脱口而出【编程语言】2015年05月05日JavaScript选中文字并响应获取的实现代码2014年01月29日UVA10099-TheTouristGuide(floyd+最小值的最大化)【编程语言】2015年05月29日SQLite学习笔记(1)-安装及其点命令2016年11月12日解题报告之SOJ3353TotalFlow 【综合】2015年04月28日Android广播机制的设计初衷是什么? 【编程语言】2015年08月17日HTML5详解及其应用 【系统运维】2015年07月15日2010年下半年软件评测师(下午)试题分析与解答【Web前端】2015年07月17日cassandra服务启动流程 【编程语言】2014年12月19日处理器管理(二)——中断处理过程 【编程语言】2015年04月24日hdu2064汉诺塔III【编程语言】2015年03月30日笔记本光驱位换SSD固态硬盘之Ghost克隆原来的系统到SSD固态硬盘分区 【云计算】2015年08月26日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)