python爬虫高级知识点_python爬虫的一些小知识点

-

关于cookielib

1>cookie:有一些网站在cookie未启用的时候无法浏览,而cookie是用于某些网站辨别用户身份,进行session跟踪而存储在 用户本地终端 上的数据(比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。)

2>打开网页的console,刷新页面之后,在network中会有Request Headers,其中就有cookie

当我们(客户端)输入URL请求页面后,我们即给web服务端发送了一个要求(request),web server根据Request生产响应的response,发回给我们(客户端),然后解析Response的html,我们就可以看到页面

–当网站发送页面到客户端时(服务器发送给客户端),会发送Headers来描述HTTP事物,送回来的headers(response headers)中包含一些有cookie的文本。如果此时想要从相同的服务器返回其他页面(客户端请求其他页面),那么cookie就必须作为请求的handler(request handler)传送给服务器,这就意味着cookies会存储一些信息让服务器来识别你。

#其中一种获取网页的方式#

cj =cookielib.CookieJar()

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

urllib2.install_opener(opener)

response3 = urllib2.urlopen(url)

print response3.getcode()

print cj

print response3.read()关于CookieJar()

cookielib.CookieJar用于存储cookie对象,此模块捕获cookie并在后续连接请教时重新发送,还可以用来处理包含cookie数据文件

关于opener和handlers

1>opener:当你获取一个URL的时候,你就使用一个opener(一个urllib2.OpenerDirector的实例) 默认的opener也就是我们常用的urlopen。它是一个特殊的opener,传入的参数仅仅是url,data,timeout(可以注意到并没有cookie,说明在某些网页中无法使用这种方法抓取数据),如果我们需要用到cookie,就需要创建更一般的opener来实现对Cookie的设置

-

自定义opener

#使用build_opener()

opener = urllib2.build_opener([handler1[handler2...]])

参数handler是Handler实例,常用的有HTTPBasicAuthHandler、HTTPCookieProcessor、ProxyHandler等

①修改http报头

import urllib2

opener = urllib2.build_opener()

opener.addheaders = [('User-agent', 'Mozilla/5.0')]

opener.open(url)

②install_opener(opener)

安装不同的opener对象作为urlopen()使用的全局opener

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

urllib2.install_opener(opener)

response3 = urllib2.urlopen(url)

③密码验证(HTTPBasicAuthHandler)

HTTPBasicAuthHandler()处理程序可用add_password()来设置密码。

h.add_password(远程关联的名称,基URL,user,passwd)

-

import urllib2

auth=urllib2.HTTPBasicAuthHandler()

auth.add_password('Administrator','http://www.example.com','Dave','123456')

opener=urllib2.build_opener(auth)

u=opener.open(URL)

④Cookie处理(HTTPCookieProcessor)

import urllib2,cookielib

cookie=cookielib.CookieJar()

cookiehand=urllib2.HTTPCookieProcessor(cookie)

opener=urllib2.build_opener(cookiehand)

⑤代理(ProxyHandler)-

ProxyHandler(proxies)参数proxies是一个字典,将协议名称(http,ftp)等映射到相应代理服务器的URL。

proxy=ProxyHandler({'http':'http://someproxy.com:8080'})

auth=HTTPBasicAuthHandler()

auth.add_password()

opener=build_opener(auth,proxy)

-

实例爬虫

1.确定抓取的目标:

-通过网页”检查元素”的操作可以确定该网页的url格式,数据格式和网页编码

2.分析目标

3.编写代码

在一个包中写入:总程序调度文件、URL管理器文件、HTML下载器文件、HTML解析器文件、HTML输出器文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值