新手学习python-从零开始学习
2016-11-11 00:00
190 查看
1.学习python
urllib2 常用方法
urlopen(url, data, timeout)
urllib2.Request()
urllib.urlencode()
params = {}
get : url + "?" + params
http:请求分析
User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求
Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
application/xml : 在 XML RPC,如 RESTful/SOAP 调用时使用
application/json : 在 JSON RPC 调用时使用
application/x-www-form-urlencoded : 浏览器提交 Web 表单时使用
在使用服务器提供的 RESTful 或 SOAP 服务时, Content-Type 设置错误会导致服务器拒绝服务
对付”反盗链”的方式,对付防盗链,服务器会识别headers中的referer是不是它自己,如果不是,有的服务器不会响应,所以我们还可以在headers中加入referer
代理服务器设置
使用DebugLog
cookie Cookielib
保存cookie到文件
从文件中获取Cookie并访问
BeautifulSoup 类型
Tag
NavigableString
BeautifulSoup
-Comment
遍历文档树
tag 的 .content 属性可以将tag的子节点以列表的方式输出
.children
.descendants 属性可以对所有tag的子孙节点进行递归循环
.strings 获取多个内容
.stripped_strings 可以去除多余空白内容
.parent 父节点
. parents 所有的父节点
.next_sibling .previous_sibling 兄弟节点
.next_siblings .previous_siblings 所有的兄弟节点
10 .next_element .previous_element 前后节点
.next_elements .previous_elements 所有的前后节点
搜索文档树
find_all( name , attrs , recursive , text , **kwargs )
用法类似
http://python.jobbole.com/81349/
urllib2 常用方法
urlopen(url, data, timeout)
urllib2.Request()
urllib.urlencode()
params = {}
get : url + "?" + params
http:请求分析
User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求
Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
application/xml : 在 XML RPC,如 RESTful/SOAP 调用时使用
application/json : 在 JSON RPC 调用时使用
application/x-www-form-urlencoded : 浏览器提交 Web 表单时使用
在使用服务器提供的 RESTful 或 SOAP 服务时, Content-Type 设置错误会导致服务器拒绝服务
import urllib import urllib2 url = 'http://www.server.com/login' user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' values = {'username' : 'cqc', 'password' : 'XXXX' } headers = { 'User-Agent' : user_agent } data = urllib.urlencode(values) request = urllib2.Request(url, data, headers) response = urllib2.urlopen(request) page = response.read()
对付”反盗链”的方式,对付防盗链,服务器会识别headers中的referer是不是它自己,如果不是,有的服务器不会响应,所以我们还可以在headers中加入referer
代理服务器设置
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)
使用DebugLog
import urllib2 httpHandler = urllib2.HTTPHandler(debuglevel=1) httpsHandler = urllib2.HTTPSHandler(debuglevel=1) opener = urllib2.build_opener(httpHandler, httpsHandler) urllib2.install_opener(opener) response = urllib2.urlopen('http://www.baidu.com')
cookie Cookielib
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
保存cookie到文件
import cookielib import urllib2 #设置保存cookie的文件,同级目录下的cookie.txt filename = 'cookie.txt' #声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件 cookie = cookielib.MozillaCookieJar(filename) #利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器 handler = urllib2.HTTPCookieProcessor(cookie) #通过handler来构建opener opener = urllib2.build_opener(handler) #创建一个请求,原理同urllib2的urlopen response = opener.open("http://www.baidu.com") #保存cookie到文件 cookie.save(ignore_discard=True, ignore_expires=True)
从文件中获取Cookie并访问
import cookielib import urllib2 #创建MozillaCookieJar实例对象 cookie = cookielib.MozillaCookieJar() #从文件中读取cookie内容到变量 cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True) #创建请求的request req = urllib2.Request("http://www.baidu.com") #利用urllib2的build_opener方法创建一个opener opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) response = opener.open(req) print response.read()
BeautifulSoup 类型
Tag
NavigableString
BeautifulSoup
-Comment
遍历文档树
tag 的 .content 属性可以将tag的子节点以列表的方式输出
.children
.descendants 属性可以对所有tag的子孙节点进行递归循环
.strings 获取多个内容
.stripped_strings 可以去除多余空白内容
.parent 父节点
. parents 所有的父节点
.next_sibling .previous_sibling 兄弟节点
.next_siblings .previous_siblings 所有的兄弟节点
10 .next_element .previous_element 前后节点
.next_elements .previous_elements 所有的前后节点
搜索文档树
find_all( name , attrs , recursive , text , **kwargs )
用法类似
http://python.jobbole.com/81349/
相关文章推荐
- 关于新手学习python的常犯的基本问题
- 【学习资料】python新手常犯的错误
- Python新手学习基础之数据类型——变量
- Python新手学习基础之数据类型——字符串类型
- 分享一个高手的python学习随笔。对于入门的新手有很大帮助
- 一个新手学习python、pys60的感受
- Python新手学习基础之运算符——算术运算符
- Python新手学习基础之初识python——与众不同2
- Python新手学习基础之初识python——与众不同2
- Python新手学习基础之数据类型——字符串的切片截取
- Python3从零开始学习
- Python基础学习-17个新手常见Python运行时错误
- 【从零开始】Python3 学习笔记
- Python新手学习基础之数据类型——变量
- Python新手学习基础之初识python——与众不同1
- 新手一天学习Python(总结)
- 从零开始学习编程语言-Python
- python学习过程之从零开始
- Python新手学习基础之数据类型——数字类型
- Python新手学习基础之运算符——算术运算符