使用 urllib2 和 cookielib 发送 HTTP 请求和处理 cookies 的一些基本技巧。你可以根据具体需求进一步定制和扩展这些代码。注意,在 Python 3 中,urllib2 被拆分成 urllib.request 和 http.cookiejar 模块,但使用方式类似。下面就是我遇到的这些问题并且做了详细的解释。
Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)
大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用。 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。 在此之前呢,我们必须先介绍一个opener的概念。 1.Opener 当你获取一个URL你使用
cookielib是一个自动处理cookies的模块,如果我们在使用爬虫等技术的时候需要保存cookie,那么cookielib会让你事半功倍!他最常见的搭档模块就是python下的urllib和request。
注解:这里使用urllib2.HTTPHandler()访问https网页得到的html代码。
CookieJar——>派生——>FileCookieJar——>派生——>MozillaCookieJar和LwpCookieJar
urlopen(url, data=None) -- Basic usage is the same as original urllib. pass the url and optionally data to post to an HTTP URL, and get a file-like object back. One difference is that you can also pass a Request instance instead of URL. Raises a URLError (subclass of IOError); for HTTP errors, raises an HTTPError, which can also be treated as a valid response.
import mechanize import cookielib import random
本文将介绍handler处理器和自定义opener,更多内容请参考:python学习指南 opener和handleer 我们之前一直使用的是urllib2.urlopen(url)这种形式来打开网页,它是一个特殊的opener(也就是模块帮我们建好的),opener是urllib2.OpenerDirectory的实例。 但是基本的urlopen()方法不支持代理、cookie等其他的HTTP/HTTPS高级功能。所以要支持这些功能: 使用相关的Handler处理器来创建特定功能的处理器对象;
这种方式发送请求得到的结果,和使用urllib2.urlopen()发送HTTP/HTTPS请求得到的结果是一样的。
本篇主要介绍了Python爬虫学习--Python爬虫模拟登录带验证码网站,通过具体的内容展现,希望对Python爬虫的学习有一定的帮助。
转自:开源中国 http://my.oschina.net/jhao104/blog/647308 用python也差不多一年多了,python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。 爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。 1、基本抓取网页 get方法 import urllib2 url = "http://www.baidu.com" response = urllib2.urlo
用python也差不多一年多了,python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。
在urllib2包中有ProxyHandler类,通过此类可以设置代理访问网页,如下代码片段:
用Python也差不多一年多了,Python应用最多的场景还是Web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。
用python也差不多一年多了,python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。 爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。 1、基本抓取网页 get方法 import urllib2 url "http://www.baidu.com" respons = urllib2.urlopen(url) print response.read() post方法 import urllib
首先,推荐两个关于python爬虫不错的博客:Python爬虫入门教程专栏 和 Python爬虫学习系列教程 。写的都非常不错,我学习到了很多东西!在此,我就我看到的学到的进行总结一下!
今天有个需求需要通过cookie访问内部cmdb,获取机器等信息。上网搜罗了一下用法。记录一下
只是拿来的文章,留个存档,可不保证能用 使用已有的cookie访问网站 import cookielib, urllib2 ckjar = cookielib.MozillaCookieJar(os.path.join(’C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default’, ‘cookies.txt’)) req = urllib2.Request(url,
cookielib一般用于客户端处理HTTP cookie信息,通过它可以从服务器端获取cookie信息,反过来又可以通过它将获取到的cookie发送给服务器。
urllib2 是Python自带的标准模块, 用来发送HTTP Request的。 类似于 .NET中的, HttpWebRequest类
python爬虫,web spider。爬取网站获取网页数据,并进行分析提取。 基本模块使用的是 urllib,urllib2,re,等模块 (一)基本用法,例子 (1)进行基本GET请求,获取网页html #!coding=utf-8 import urllib import urllib2 url = 'http://www.baidu.com/' # 获取请求 request = urllib2.Request(url) try: # 根据request,得到返回r
至此,我们可以描述爬虫程序,就是用来根据一定的规则采集获取网络中的数据的! 整个采集过程主要步骤如下:
基本模型 请求与响应 import urllib.request as urllib2 request=urllib2.Request('http://www.zhihu.com') response=urllib2.urlopen(request) html=response.read() print(html) Cookie处理 呵呵 import urllib.request as urllib2 import http.cookiejar as cookielib cookie = cookie
用python也差不多一年多了,python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。 爬虫在开发过程中也有很多复用
有些网站设置了权限,只有在登录了之后才能爬取网站的内容,如何模拟登录,目前的方法主要是利用浏览器cookie模拟登录。
urllib2是python2.x下的一个模块,在Python3.x中,urllib2被拆分成urllib.request和urllib.error.
其中,内存适合个人,缓存数据库适合大型公司。 ### 4.网页下载器(urllib2)[核心组件]() - 网页下载器:将互联网上URL对应的网页下载到本地的工具。 - Python有那几种网页下载器? -
爬虫,简单说就是规模化地采集网页信息,因为网络像一张网,而爬虫做的事就像一只蜘蛛在网上爬,所以爬虫英文名就是spider。
模板方法 python也是一种面向对象的语言,所以在实现群发的时候,会登陆不同的网站,但是登陆的方法什么的不尽相同,所以这里想到的是模板方法。 模板方法模式: 应用特性:重复做相同逻辑的事情,但是具体细节不同的场景 结构特性:相同逻辑抽取至父类,具体细节留置子类。可以说是对逻辑的抽象 看一下代码: #!/usr/bin/env python #encoding: utf-8 class template: def __init__(self): pass
有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作
老早写的,都忘了当初想干啥了。。。。 半成品,留个坑,待填。 #!/usr/bin/env python # encoding: utf-8 import cookielib import requests def http_send(url, post_data='', **kwargs): cookie_handler = cookielib.MozillaCookieJar('cookie.txt') try: cookie_handler.load(ignore
模拟登陆的时候是post请求。提交表单的地址和人人界面登陆地址是不一样的,实际是人人界面的登陆地址。也就是wwww.renren.cm.你输入你的信息以后它会自己主动跳转到
Python3中,import cookielib改成 import http.cookiejar
有些网站设置了权限,只有在登录了之后才能爬取网站的内容,如何模拟登录,目前的方法主要是利用浏览器cookie模拟登录。 浏览器访问服务器的过程 在用户访问网页时,不论是通过URL输入域名或IP,还是点击链接,浏览器向WEB服务器发出了一个HTTP请求(Http Request),WEB服务器接收到客户端浏览器的请求之后,响应客户端的请求,发回相应的响应信息(Http Response),浏览器解析引擎,排版引擎分析返回的内容,呈现给用户。WEB应用程序在于服务器交互的过程中,HTTP请求和响应时发送的都是一
MD5(Message-Digest Algorithm 5)算法是一种非常常见的信息摘要hash算法,一般可以用来进行数字签名,或者理解成为一种压缩算法。他的本质是一种分组加密算法。百度上对MD5算法简要的叙述为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。用十六进制表示的话,每四位变成一个十六进制数,这样也就是生成了总共为32位的十六进制数,即MD5码。
作者:admin IDF实验室 http://blog.idf.cn/2015/02/programming-of-grabing-red-envelopes/ 背景大家都懂的,要过年了,正是红包满天飞的日子。正巧前两天学会了Python,比较亢奋,就顺便研究了研究微博红包的爬取,为什么是微博红包而不是支付宝红包呢,因为我只懂Web,如果有精力的话之后可能也会研究研究打地鼠算法吧。 因为本人是初学Python,这个程序也是学了Python后写的第三个程序,所以代码中有啥坑爹的地方请不要当
4.hashlib是涉及安全散列和消息摘要,提供多个不同的加密算法借口,如SHA1、SHA224、SHA256、SHA384、SHA512、MD5等。
urllib2做为python下,在httplib之上再次封装的强大html协议实现,应用非常广泛。
通过几天的学习与尝试逐渐对python爬虫有了一些小小的心得,我们渐渐发现他们有很多共性,总是要去获取一系列的链接,读取网页代码,获取所需内容然后重复上面的工作,当自己运用的越来越熟练之后我们就会尝试着去总结一下爬虫的共性,试着去写个helper类以避免重复性劳动。
Handler和Opener Handler处理器和自定义Opener opener是urllib2.OpenerDirector的实例,我们之前一直在使用urlopen,它是一个特殊的opener(也就是我们构建好的)。 但是urlopen()方法不支持代理、cookie等其他的HTTP/GTTPS高级功能。所有要支持这些功能: 1.使用相关的Handler处理器来创建特定功能的处理器对象; 2.然后通过urllib2.build_opener()方法使用这些处理器对象,创建自定义opener对象
4 from urllib2 import Request, build_opener, HTTPCookieProcessor, HTTPHandler
captcha是Completely Automated Public Turing Test to Tell Computers and Humans Apart ,全自动区分计算机和人类的图灵测试
B站的登录密码用了rsa加密(两个大质数的乘积很难进行逆向分解,所以可以用这个乘积来做公钥)。 所以运行py文件之前,使用镜像,先用pip安装rsa库: pip install rsa -i https://pypi.tuna.tsinghua.edu.cn/simple/ 运行: import requests import re import time import sys import json import rsa import os.path import binascii import d
为了提高验证码的识别准确率,我们当然要首先得到足够多的测试数据。验证码下载下来容易,但是需要人脑手工识别着实让人受不了,于是我就想了个折衷的办法------自己造验证码。
#encode:utf-8 import urllib,urllib2,cookielib,json,time,md5,re
领取专属 10元无门槛券
手把手带您无忧上云