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

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 设置错误会导致服务器拒绝服务

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://www.mzph.cn/news/258419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】图的深度优先搜索

图的深度优先搜索类似于树的深度优先搜索。不同的是,图中可能包括循环,即我们有可能重复访问节点。为了避免访问已经访问过的节点,我们要使用一个布尔变量的数组。 例如,在下图中,我们从节点2开始访问。当访问到节点0&…

flex中dispatchEvent的用法(自定义事件) .

Evevt和EventDispatcher类在as3的事件机制中是很重要的角色,dispatchEvent()是EventDispatcher类的一个事件发送方法,它可以发送出Event类或其子类的实例,在as3中所有的显示对象都可以发送事件,因为as3中所有的显示对象都是EventD…

菜鸟超级进口大仓618首度亮相!跨境商品也能当日次日达

6月12日下午3点40分,来自南京的一名用户收到了由宁波保税仓发出、圆通速递配送的雀巢咖啡,这距离他在天猫国际上下单仅过去4小时。 天猫618在昨日迎来进口日,进口销量火爆上升。作为国内最为先进的跨境进口仓,菜鸟超级大仓在本次大…

频域/s域/z域三大变换的发展史及其联系

本文主要介绍三大变换(傅里叶变换、拉普拉斯变换及Z变换)的发展史及其之间的联系。

Tomcat8.0.21登录时忘记用户名和密码

大概是这学期开学没多久吧,4月份的时候,为了学习javaEE,装了Tomcat。过了这么久早就忘记用户名和密码了,所以无法进入Tomcat的管理界面。百度(其实我也很想用google)了一堆,几乎都是修改用户配置…

二元隐函数求二阶偏导_在线计算专题(03):具体、抽象函数的导数、微分与方向导数的计算...

导数与微分是微积分内容的基础,就计算来说一元函数与多元函数的导数的计算思想一致. 不管是一元函数还是多元函数,导数、偏导数的计算都是将函数视为求导变量的一元函数求导数。微分在描述形式略有区别,但是其计算方法还是一样,只…

android更换工具链

欢迎转载opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e73 android编译系统是跟随android源码一起发布的,使用了gcc编译器,也就是所谓的交叉编译环境。android-4.2里用的编译器是gcc4.6,本篇升级gcc4.6到gcc4.6,修…

频域/s域/z域三大变换的性质对比

本文主要介绍三大变换(傅里叶变换、拉普拉斯变换及Z变换)的性质对比及其常用信号变换。

Java系列(1) JavaEE架构

JavaEE是开发分布式应用的工业标准,Weblogic,BES,Tomcat等是比较常见的JavaEE服务器,严格来说Tomcat没有实现全部的JavaEE规范,只能算是Servlet容器。我们从一幅Spec文档上的架构图,粗略了解JavaEE的基本结构。该结构图表达了JavaEE各元素的逻…

协整检验r语言代码_R语言时间序列分析实例

#加载数据xread.table(file.choose())#生成时间序列对象xtimeseries#画时间序列图plot.ts(xtimeseries)#增加线性拟合曲线abline(lm(xtimeseries~time(xtimeseries)))1、分解时间序列分解一个时间序列意味着把它拆分成构成元件,一般序列包含一个趋势部分、一个不规则…

pat1043. Is It a Binary Search Tree (25)

1043. Is It a Binary Search Tree (25) 时间限制400 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueA Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains o…

微软待办应用更新

微软做了一些更改和优化来改进微软待办。 为了在所有设备上获得最佳体验,需确保移动和桌面微软待办2021 年 12 月 31日之前的版本为 2.49 或更高版本,否则微软待办不再支持跨设备同步,但仍然能脱机使用。 桌面版的微软待办应用下载地址为&…

出租WiFi到底靠不靠谱?

创业是一种心态,也是不断的探索,他融入我们的生活,从日常中积累,从小微处启航。 一、背景交代 最近在换工作,本周搬到新租的单身公寓,空间不大,倒是干净整洁。委托租房中介帮忙开通宽带&#xf…

AD20学习笔记1---元件库的创建

前言: 本文学习视频是B站点击率第一的凡亿教育《Altium Designer 20 19(入门到精通全38集)四层板智能车PCB设计视频教程》,视频地址:Altium Designer 20 19(入门到精通全38集)四层板智能车PCB设…

nodejs环境搭建与express安装配置

一、NPM 1、下载nodeJS 下载地址:https://nodejs.org/en/download/ 因为我的系统是Linux 的,所以下载已经编译好的Linux,nodejs tar包 3、下载完成过后放到/usr/local/下面 4、解压:因为这个包不是gz的包所以解压 正确&#xff1a…

在vue中实现picker样式_基于Vue实现timepicker

主要用到的还是Vue的基本知识而已,不过要想到的细节很多。先放效果,点击上框,显示timepicker。而且可以根据点击的是时还是分来改变圆盘的数字。这里我用了两个组件,和,这里的时和分的数值我挂在了根实例中&#xff0c…

玩玩

金字塔一样输出字母&#xff0c;如 输入 d a a b a a b c b a a b c d c b a 代码实现 #include<stdio.h> int main(void) { char z; int j,t,k; scanf("%c",&z); t0; if(z>a&&z<z) { for(int i0;i<z-a;i) { for(kz-a-t;k…

总结界面框架_UI_Adapter

本人定期更新经典案例及解决方案如有疑问请联系我QQ1822282728 -- 277627117 下面是常用到的ui Demo安卓三级筛选菜单listview&#xff08;非常经典&#xff09; http://download.csdn.net/detail/zillvip/9138975android地图应用&#xff08;路径规划&#xff0c;地理编码&…

AD20学习笔记2---原理图绘制及编译检查

前言&#xff1a; 本文学习视频是B站点击率第一的凡亿教育《Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设计视频教程》&#xff0c;视频地址&#xff1a;Altium Designer 20 19&#xff08;入门到精通全38集&#xff09;四层板智能车PCB设…

git如何设置master分支的权限_Git 从master 分支拉新分支开发

一、 切换到被copy的分支(master)&#xff0c;并且从远端拉取最新版本$git checkout master$git pull二、从当前分支拉copy开发分支$git checkout -b devSwitched to a new branch dev三、 把新建的分支push到远端$git push origin dev四、拉取远端分支$git pullThere is no tr…