爬虫
2017-09-18 本文已影响0人
Ji_uu
复习
- 什么是爬虫?爬虫是用来做什么的?怎么使用爬虫爬取数据?
-
数据的重要性
-
数据的来源
-
爬取数据的规则【通用爬虫 | 聚焦爬虫】
-
爬虫:爬取网页数据的程序~
-
爬虫爬取数据的步骤
- 分析目标网页的请求方式【url地址、请求头,返回的数据】
- 开始进行数据的爬取【准备数据、编码进行数据获取、数据分析和使用】
-
爬虫中最难处理的部分
- 目标地址-> 【抓包、获取请求地址之后的操作~分析请求[需要登录 | 反爬虫机制]】
- 反爬虫分析——反爬虫规则
- 程序开发【最简单的】
- 数据分析【查询匹配】
- 目标地址-> 【抓包、获取请求地址之后的操作~分析请求[需要登录 | 反爬虫机制]】
-
数据的爬取操作
urllib2 创建请求对象,打开目标网址获取响应对象-> 读取响应数据
urllib 用于进行编码转换 -
爬取方式分类
GET/POST
get:url地址和参数进行拼接访问
post: url地址和参数分别定义,参数被包装在了一个对象中。GET方式获取数据
GET方式获取Ajax数据
POST方式获取数据/Ajax数据
Cookie模拟登陆获取受限数据 -
原始的方式:默认的方式
urllib2.urlopen(url, data, headers) -
自定义打开方式——参考源代码
自定义
# -*- coding:utf-8 -*-
import urllib2
request = urllib2.Request("http://www.baidu.com")
response = urllib2.urlopen(request)
print response.read()
# 创建一个HTTP处理器对象
http_handler = urllib2.HTTPHandler()
# 创建一个打开方式对象
opener = urllib2.build_opener(http_handler)
# 通过自定义的打开方式,打开目标网址,获取目标网址服务器返回的响应对象
response = opener.open("http://www.baidu.com")
# 读取响应对象中的数据
print response.read()
自定义代理处理器
# -*- coding:utf-8 -*-
import urllib
import urllib2
# 创建一个代理对象处理器
# 使用免费的代理进行处理器的创建
# proxy_handler = urllib2.ProxyHandler({"http":"67.205.159.165:3128"})
# 使用私密代理进行处理器的创建【账号 + 密码】
proxy_handler = urllib2.ProxyHandler({"http" : "username:password@67.205.159.165:3128"})
# 创建一个请求发送对象
opener = urllib2.build_opener(proxy_handler)
# 创建请求对象
request = urllib2.Request("http://www.baidu.com")
# 发送请求,获取服务器返回的响应对象
response = opener.open(request)
# 获取数据
print response.read()
密码管理
# -*- coding:utf-8 -*-
import urllib
import urllib2
# 准备数据
ftp_server = "192.168.1.100"
username = "root"
password = "123456"
# 创建一个密码管理器对象
pass_mgr = urllib2.HttpPasswordMgrWithDefaultRealm()
# 增加要管理服务器
pass_mgr.add_password(None, ftp_server, username, password)
# 创建一个web验证处理器
http_auth_handler = urllib2.HTTPBasicAuthHandler(pass_mgr)
# 构建一个请求对象
request = urllib2.Request("http://image.baidu.com")
# 创建自定义打开方式对象【开锁人】
opener = urllib2.build_opener(http_auth_handler)
# 发送请求,获取服务器的响应对象
response = opener.open(request)
# 获取响应中的数据
content = response.read()
# 处理数据
print content
cookie 操作
# -*- coding:utf-8 -*-
import urllib
import urllib2
import cookielib
# 创建一个Cookie对象
cookie = cookielib.CookieJar()
# 创建一个处理器对象
cookie_handler = urllib2.HTTPCookieProcessor(cookie)
# 创建一个请求打开方式
opener = urllib2.build_opener(cookie_handler)
# 构建请求对象
url = "http://www.renren.com/PLogin.do" # http://www.renren.com/SysHome.do
data = urllib.urlencode({"email":"test", "password":"123"})
request = urllib2.Request(url, data)
# 发送请求,访问数据,得到响应对象
response = opener.open(request)
# 获取数据
content = response.read()
print content
老牟第三天的复习