新手学习python-从零开始学习

1.学习pythonpython

  • urllib2 经常使用方法

urlopen(url, data, timeout)json

urllib2.Request()浏览器

urllib.urlencode()服务器

params = {} get : url + "?" + paramscookie

  • 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中加入refererapp

  • 代理服务器设置学习

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
  • 遍历文档树ui

    1. tag 的 .content 属性能够将tag的子节点以列表的方式输出
    2. .children
    3. .descendants 属性能够对全部tag的子孙节点进行递归循环
    4. .strings 获取多个内容
    5. .stripped_strings 能够去除多余空白内容
    6. .parent 父节点
    7. . parents 全部的父节点
    8. .next_sibling .previous_sibling 兄弟节点
    9. .next_siblings .previous_siblings 全部的兄弟节点 10 .next_element .previous_element 先后节点
    10. .next_elements .previous_elements 全部的先后节点
  • 搜索文档树url

    1. find_all( name , attrs , recursive , text , **kwargs )
    2. 用法相似
    3. http://python.jobbole.com/81349/
相关文章
相关标签/搜索