>
快捷搜索:

python的岗位参数,数据类型和进制转变

- 编辑:皇家国际app -

python的岗位参数,数据类型和进制转变

爬虫简要介绍

 什么是爬虫?

爬虫:就是抓取网页数据的顺序。

HTTP和HTTPS

HTTP公约(HyperText Transfer Protocol,超文本传输左券卡塔尔:是大器晚成种发表和收受 HTML页面包车型地铁格局。

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer卡塔 尔(阿拉伯语:قطر‎简单讲是HTTP的安全版,在HTTP下步向SSL层。

SSL(Secure Sockets Layer 避孕套接层卡塔尔重要用于Web的平安传输左券,在传输层对网络连接实行加密,保证在Internet上数据传输的鹤岗。

浏览器发送HTTP供给的进度:

  1. 当客户在浏览器之处栏中输入一个U悍马H2L并按回车键之后,浏览器会向HTTP服务器发送HTTP央求。HTTP诉求首要分为“Get”和“Post”三种格局。

  2. 当我们在浏览器输入U安德拉L  的时候,浏览器发送三个Request伏乞去得到  的html文件,服务器把Response文件对象发送回给浏览器。

  3. 浏览器解析Response中的 HTML,发掘里面援用了数不完别的文件,比方Images文件,CSS文件,JS文件。 浏览器会自动重新发送Request去获取图片,CSS文件,恐怕JS文件。

  4. 当有着的文件都下载成功后,网页会依靠HTML语法结构,完整的显得出来了。

URL(Uniform / Universal Resource Locator的缩写)

概念:统一能源定位符,是用以完整地陈述Internet上网页和任何能源的地点的意气风发种标志方法。

宗旨格式:scheme://host[:port#]/path/…/[?query-string][#anchor]

  • scheme:协议(例如:http, https, ftp)
  • host:服务器的IP地址也许域名
  • port#:服务器的端口(要是是走协议暗中同意端口,缺省端口80卡塔尔
  • path:访谈能源的路径
  • query-string:参数,发送给http服务器的多少
  • anchor:锚(跳转到网页的内定锚点地方卡塔 尔(英语:State of Qatar)

客户端HTTP请求

U奥德赛L只是标记能源的岗位,而HTTP是用来交给和获得财富。顾客端发送一个HTTP央求到服务器的乞请音讯,包涵以下格式:

请求行请求头部空行请求数据

一个标准的HTTP乞求

GET https://www.baidu.com/ HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh,zh-CN;q=0.8,ar;q=0.6,zh-TW;q=0.4
Cookie: BAIDUID=AE4D1DA6B2D6689BB8C557B3436893E3:FG=1; BIDUPSID=AE4D1DA6B2D6689BB8C557B3436893E3; PSTM=1501466227; BD_UPN=12314353; BD_CK_SAM=1; PSINO=1; H_PS_PSSID=1420_25548_21080_20929; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDSVRTM=0

图片 1图片 2

1. Host (主机和端口号)

Host:对应网址URL中的Web名称和端口号,用于指定被请求资源的Internet主机和端口号,通常属于URL的一部分。
2. Connection (链接类型)

Connection:表示客户端与服务连接类型

    Client 发起一个包含 Connection:keep-alive 的请求,HTTP/1.1使用 keep-alive 为默认值。

    Server收到请求后:
        如果 Server 支持 keep-alive,回复一个包含 Connection:keep-alive 的响应,不关闭连接;
        如果 Server 不支持 keep-alive,回复一个包含 Connection:close 的响应,关闭连接。

    如果client收到包含 Connection:keep-alive 的响应,向同一个连接发送下一个请求,直到一方主动关闭连接。

keep-alive在很多情况下能够重用连接,减少资源消耗,缩短响应时间,比如当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都去请求建立连接。
3. Upgrade-Insecure-Requests (升级为HTTPS请求)

Upgrade-Insecure-Requests:升级不安全的请求,意思是会在加载 http 资源时自动替换成 https 请求,让浏览器不再显示https页面中的http请求警报。

HTTPS 是以安全为目标的 HTTP 通道,所以在 HTTPS 承载的页面上不允许出现 HTTP 请求,一旦出现就是提示或报错。
4. User-Agent (浏览器名称)

User-Agent:是客户浏览器的名称,以后会详细讲。
5. Accept (传输文件类型)

Accept:指浏览器或其他客户端可以接受的MIME(Multipurpose Internet Mail Extensions(多用途互联网邮件扩展))文件类型,服务器可以根据它判断并返回适当的文件格式。
举例:

Accept: */*:表示什么都可以接收。

Accept:image/gif:表明客户端希望接受GIF图像格式的资源;

Accept:text/html:表明客户端希望接受html文本。

Accept: text/html, application/xhtml+xml;q=0.9, image/*;q=0.8:表示浏览器支持的 MIME 类型分别是 html文本、xhtml和xml文档、所有的图像格式资源。

q是权重系数,范围 0 =< q <= 1,q 值越大,请求越倾向于获得其“;”之前的类型表示的内容。若没有指定q值,则默认为1,按从左到右排序顺序;若被赋值为0,则用于表示浏览器不接受此内容类型。

Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;Application:用于传输应用程序数据或者二进制数据。详细请点击
6. Referer (页面跳转处)

Referer:表明产生请求的网页来自于哪个URL,用户是从该 Referer页面访问到当前请求的页面。这个属性可以用来跟踪Web请求来自哪个页面,是从什么网站来的等。

有时候遇到下载某网站图片,需要对应的referer,否则无法下载图片,那是因为人家做了防盗链,原理就是根据referer去判断是否是本网站的地址,如果不是,则拒绝,如果是,就可以下载;
7. Accept-Encoding(文件编解码格式)

Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然后再检查文件格式,许多情形下这可以减少大量的下载时间。
举例:Accept-Encoding:gzip;q=1.0, identity; q=0.5, *;q=0

如果有多个Encoding同时匹配, 按照q值顺序排列,本例中按顺序支持 gzip, identity压缩编码,支持gzip的浏览器会返回经过gzip编码的HTML页面。 如果请求消息中没有设置这个域服务器假定客户端对各种内容编码都可以接受。
8. Accept-Language(语言种类)

Accept-Langeuage:指出浏览器可以接受的语言种类,如en或en-us指英语,zh或者zh-cn指中文,当服务器能够提供一种以上的语言版本时要用到。
9. Accept-Charset(字符编码)

Accept-Charset:指出浏览器可以接受的字符编码。
举例:Accept-Charset:iso-8859-1,gb2312,utf-8

    ISO8859-1:通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符,英文浏览器的默认值是ISO-8859-1.
    gb2312:标准简体中文字符集;
    utf-8:UNICODE 的一种变长字符编码,可以解决多种语言文本显示问题,从而实现应用国际化和本地化。

如果在请求消息中没有设置这个域,缺省是任何字符集都可以接受。
10. Cookie (Cookie)

Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能,以后会详细讲。
11. Content-Type (POST数据类型)

Content-Type:POST请求里用来表示的内容类型。
举例:Content-Type = Text/XML; charset=gb2312:

指明该请求的消息体中包含的是纯文本的XML类型的数据,字符编码采用“gb2312”。

常用乞求报头

图片 3图片 4

服务器和客户端的交互仅限于请求/响应过程,结束之后便断开,在下一次请求时,服务器会认为新的客户端。

为了维护他们之间的链接,让服务器知道这是前一个用户发送的请求,必须在一个地方保存客户端的信息。

Cookie:通过在 客户端 记录的信息确定用户的身份。

Session:通过在 服务器端 记录的信息确定用户的身份。

cookie和session

HTTP需要方法

序号   方法      描述
1     GET       请求指定的页面信息,并返回实体主体。
2     HEAD      类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
3     POST      向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
4     PUT       从客户端向服务器传送的数据取代指定的文档的内容。
5     DELETE    请求服务器删除指定的页面。
6     CONNECT   HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
7     OPTIONS   允许客户端查看服务器的性能。
8     TRACE     回显服务器收到的请求,主要用于测试或诊断。

根本措施get和post央求

  • GET是从服务器上获取数据,POST是向服务器传送数据

  • GET央求参数字显示示,都呈现在浏览器网站上,HTTP服务器根据该央浼所含有U奥德赛L中的参数来爆发响应内容,即“Get”央求的参数是URL的大器晚成部分。 举个例子: http://www.baidu.com/s?wd=Chinese

  • POST央求参数在央浼体当中,音讯长度未有约束并且以隐式的章程举办发送,日常用来向HTTP服务器提交量非常的大的多少(举个例子央求中蕴含众多参数大概文件上传操作等卡塔尔国,央求的参数包蕴在“Content-Type”新闻头里,指明该音信体的媒体类型和编码.

HTTP响应状态码

图片 5图片 6

1xx:信息

100 Continue
服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。
101 Switching Protocols
服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。



2xx:成功

200 OK
请求成功(其后是对GET和POST请求的应答文档)
201 Created
请求被创建完成,同时新的资源被创建。
202 Accepted
供处理的请求已被接受,但是处理未完成。
203 Non-authoritative Information
文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝。
204 No Content
没有新文档。浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
205 Reset Content
没有新文档。但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。
206 Partial Content
客户发送了一个带有Range头的GET请求,服务器完成了它。



3xx:重定向

300 Multiple Choices
多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。
301 Moved Permanently
所请求的页面已经转移至新的url。
302 Moved Temporarily
所请求的页面已经临时转移至新的url。
303 See Other
所请求的页面可在别的url下被找到。
304 Not Modified
未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
305 Use Proxy
客户请求的文档应该通过Location头所指明的代理服务器提取。
306 Unused
此代码被用于前一版本。目前已不再使用,但是代码依然被保留。
307 Temporary Redirect
被请求的页面已经临时移至新的url。



4xx:客户端错误

400 Bad Request
服务器未能理解请求。
401 Unauthorized
被请求的页面需要用户名和密码。
401.1
登录失败。
401.2
服务器配置导致登录失败。
401.3
由于 ACL 对资源的限制而未获得授权。
401.4
筛选器授权失败。
401.5
ISAPI/CGI 应用程序授权失败。
401.7
访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。
402 Payment Required
此代码尚无法使用。
403 Forbidden
对被请求页面的访问被禁止。
403.1
执行访问被禁止。
403.2
读访问被禁止。
403.3
写访问被禁止。
403.4
要求 SSL。
403.5
要求 SSL 128。
403.6
IP 地址被拒绝。
403.7
要求客户端证书。
403.8
站点访问被拒绝。
403.9
用户数过多。
403.10
配置无效。
403.11
密码更改。
403.12
拒绝访问映射表。
403.13
客户端证书被吊销。
403.14
拒绝目录列表。
403.15
超出客户端访问许可。
403.16
客户端证书不受信任或无效。
403.17
客户端证书已过期或尚未生效。
403.18
在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。
403.19
不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。
403.20
Passport 登录失败。这个错误代码为 IIS 6.0 所专用。
404 Not Found
服务器无法找到被请求的页面。
404.0
没有找到文件或目录。
404.1
无法在所请求的端口上访问 Web 站点。
404.2
Web 服务扩展锁定策略阻止本请求。
404.3
MIME 映射策略阻止本请求。
405 Method Not Allowed
请求中指定的方法不被允许。
406 Not Acceptable
服务器生成的响应无法被客户端所接受。
407 Proxy Authentication Required
用户必须首先使用代理服务器进行验证,这样请求才会被处理。
408 Request Timeout
请求超出了服务器的等待时间。
409 Conflict
由于冲突,请求无法被完成。
410 Gone
被请求的页面不可用。
411 Length Required
"Content-Length" 未被定义。如果无此内容,服务器不会接受请求。
412 Precondition Failed
请求中的前提条件被服务器评估为失败。
413 Request Entity Too Large
由于所请求的实体的太大,服务器不会接受请求。
414 Request-url Too Long
由于url太长,服务器不会接受请求。当post请求被转换为带有很长的查询信息的get请求时,就会发生这种情况。
415 Unsupported Media Type
由于媒介类型不被支持,服务器不会接受请求。
416 Requested Range Not Satisfiable
服务器不能满足客户在请求中指定的Range头。
417 Expectation Failed
执行失败。
423
锁定的错误。



5xx:服务器错误

500 Internal Server Error
请求未完成。服务器遇到不可预知的情况。
500.12
应用程序正忙于在 Web 服务器上重新启动。
500.13
Web 服务器太忙。
500.15
不允许直接请求 Global.asa。
500.16
UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。
500.18
URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。
500.100
内部 ASP 错误。
501 Not Implemented
请求未完成。服务器不支持所请求的功能。
502 Bad Gateway
请求未完成。服务器从上游服务器收到一个无效的响应。
502.1
CGI 应用程序超时。 ·
502.2
CGI 应用程序出错。
503 Service Unavailable
请求未完成。服务器临时过载或当机。
504 Gateway Timeout
网关超时。
505 HTTP Version Not Supported
服务器不支持请求中指明的HTTP协议版本

View Code

浏览器内核

浏览器                         内核
IE                           Trident
Chrome                       Webkit
Firefox                      Gecho
Opera                        Pesto
Safari(Apple)                Webkit 

HTTP代理工科具Fiddler
Fiddler是后生可畏款强盛Web调节和测量检验工具,它能记录全部客户端和服务器的HTTP乞求.
图片 7

Request部分详细解释

  1. Headers —— 呈现客商端发送到服务器的 HTTP 要求的 header,呈现为三个分级视图,满含了 Web 顾客端新闻、Cookie、传输状态等。
  2. Textview —— 突显 POST 诉求的 body 部分为文本。
  3. WebForms —— 展现央浼的 GET 参数 和 POST body 内容。
  4. HexView —— 用十七进制数据浮现供给。
  5. Auth —— 展现响应 header 中的 Proxy-Authorization(代理身份验证) 和 Authorization(授权) 消息.
  6. Raw —— 将整个央求展现为纯文本。
  7. JSON - 呈现JSON格式文件。
  8. XML —— 若是央浼的 body 是 XML 格式,就是用各自的 XML 树来展现它。

 Responser部分详明

  1. Transformer —— 显示响应的编码音信。
  2. Headers —— 用分级视图展现响应的 header。
  3. TextView —— 使用文本呈现相应的 body。
  4. ImageVies —— 就算央求是图表能源,展现响应的图样。
  5. HexView —— 用十五进制数据呈现响应。
  6. WebView —— 响应在 Web 浏览器中的预览效果。
  7. Auth —— 呈现响应 header 中的 Proxy-Authorization(代理身份验证) 和 Authorization(授权) 音讯。
  8. Caching —— 突显此倡议的缓存新闻。
  9. Privacy —— 彰显此恳请的私密 (P3P) 音信。
  10. Raw —— 将整个响应展现为纯文本。
  11. JSON - 展现JSON格式文件。
  12. XML —— 就算响应的 body 是 XML 格式,就是用各自的 XML 树来突显它 。

 驾驭了这一个文化后,接下去真正迈向爬虫之路.......

图片 8

正文首要记录为史振华在尝试转换PY文件为EXE文件进度中各样纠结和最终消除格局,尝试了PYTHON 2.7/3.5/3.6会同相关正视pywin32-222.win32/pywin32-222.win-amd64。特别感激IT笔记若能更早看过此文很有赞助,网络有大量相关作品但与自家实际中一定的区别。系统遇到:Win7 Enterprise SP1/ intel i5-4310M CPU /System type:64-bit OS。2018/2/13

风流倜傥、地方参数

调用函数时依照函数定义的参数地点来传递参数。

#!/usr/bin/env python
# coding=utf-8

def print_hello(name, sex):
    sex_dict = {1: u'先生', 2: u'女士'}
    print 'hello %s %s, welcome to python world!' %(name, sex_dict.get(sex, u'先生'))


# 两个参数的顺序必须一一对应,且少一个参数都不可以
# print_hello('tanggu', 1)

<1> CharField
#字符串字段, 用于非常短的字符串.
#Char菲尔德 须求必需有叁个参数 maxlength, 用于从数量库层和Django校验层约束该字段所允许的最大字符数.

urllib2

所谓网页抓取,便是把U凯雷德L地址中钦赐的互联网财富从网络流中读收取来,保存到本地。 在Python中有不菲库能够用来抓取网页,先读书urllib2

urllib2模块直接导入就足以用,在python3中urllib2被改为urllib.request

初始爬虫须求准备的风流罗曼蒂克对工具

(1卡塔 尔(英语:State of Qatar)下载Fiddeler抓包工具,百度直接下载安装就可以(抓包卡塔尔国

(2卡塔 尔(阿拉伯语:قطر‎下载chrome浏览器代理插件 Proxy-SwitchyOmega(代理卡塔 尔(英语:State of Qatar)

(3卡塔尔下载chrome浏览器插件XPath(深入解析HTML卡塔 尔(阿拉伯语:قطر‎

(4卡塔尔工具网址:

           (json剖判网址)

           (url编码解码网址卡塔 尔(英语:State of Qatar)

先写个轻巧的爬虫百度页面

urlopen

# _*_ coding:utf-8 _*_
import urllib2

#向指定的url地址发送请求,并返回服务器响应的类文件对象
response = urllib2.urlopen('http://www.baidu.com/')
#服务器返回的类文件对象支持python文件对象的操作方法
#read()方法就是读取文件里的全部内容,返回字符串
html = response.read()
print html

urllib2暗中认可的User-Agent是Python-urllib/2.7,轻易被检查到是爬虫,所以咱们要布局二个伸手对象,要用到request方法。

仿照浏览器访谈

浏览器访谈时经过抓包工具获得的headers音讯如下:

GET https://www.baidu.com/ HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh,zh-CN;q=0.8,ar;q=0.6,zh-TW;q=0.4
Cookie: BAIDUID=AE4D1DA6B2D6689BB8C557B3436893E3:FG=1; BIDUPSID=AE4D1DA6B2D6689BB8C557B3436893E3; PSTM=1501466227; BD_CK_SAM=1; PSINO=1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BD_HOME=0; H_PS_PSSID=1420_25548_21080_20929; BD_UPN=12314353

作者们要安装User-Agent模仿浏览器去拜访数据

# _*_ coding:utf-8 _*_
import urllib2

# User-Agent是爬虫与反爬虫的第一步
ua_headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'}
# 通过urllib2.Request()方法构造一个请求对象
request = urllib2.Request('http://www.baidu.com/',headers=ua_headers)

#向指定的url地址发送请求,并返回服务器响应的类文件对象
response = urllib2.urlopen(request)

# 服务器返回的类文件对象支持python文件对象的操作方法
# read()方法就是读取文件里的全部内容,返回字符串
html = response.read()

print html

Request总共四个参数,除了一定要有url参数,还会有上面多少个:

  1. data(默许空卡塔 尔(阿拉伯语:قطر‎:是伴随 url 提交的数目(比方要post的数码卡塔 尔(英语:State of Qatar),同一时候 HTTP 哀告将从 "GET"方式 改为 "POST"方式。

  2. headers(私下认可空卡塔尔国:是叁个字典,满含了特殊需求发送的HTTP报头的键值对。

response的常用方法

# _*_ coding:utf-8 _*_
import urllib2

# User-Agent是爬虫与反爬虫的第一步
ua_headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'}
# 通过urllib2.Request()方法构造一个请求对象
request = urllib2.Request('http://www.baidu.com/',headers=ua_headers)

#向指定的url地址发送请求,并返回服务器响应的类文件对象
response = urllib2.urlopen(request)

# 服务器返回的类文件对象支持python文件对象的操作方法
# read()方法就是读取文件里的全部内容,返回字符串
html = response.read()

# 返回HTTP的响应吗,成功返回200,4服务器页面出错,5服务器问题
print response.getcode()     #200

# 返回数据的实际url,防止重定向
print response.geturl()     #https://www.baidu.com/

# 返回服务器响应的HTTP报头
print response.info()

# print html

轻巧挑选叁个Use-Agent

为了幸免封IP,先生成二个user-agent列表,然后从中随机选取叁个

# _*_ coding:utf-8 _*_
import urllib2
import random

url = 'http:/www.baidu.com/'

# 可以试User-Agent列表,也可以是代理列表
ua_list = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
    "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
]

# 在User-Agent列表中随机选择一个User-Agent
user_agent = random.choice(ua_list)

# 构造一个请求
request = urllib2.Request(url)

# add_header()方法添加/修改一个HTTP报头
request.add_header('User-Agent',user_agent)

#get_header()获取一个已有的HTTP报头的值,注意只能第一个字母大写,后面的要小写
print request.get_header('User-agent')

工具

python-3.6.4-amd64.exe:

pywin32-222.win-amd64-py3.6.exe:

PyInstaller-3.3.1.tar:

二、关键字参数

用来函数调用,通过“键-值”情势加以钦定。能够让函数越发清晰、轻巧选拔,同期也扫除了参数的意气风发生机勃勃供给。

# 以下是用关键字参数正确调用函数的实例
# print_hello('tanggu', sex=1)
# print_hello(1, name='tanggu')
# print_hello(name='tanggu', sex=1)
# print_hello(sex=1, name='tanggu')

# 以下是错误的调用方式
# print_hello(name='tanggu', 1)
# print_hello(sex=1, 'tanggu')

通过地方的代码,大家得以窥见:有职位参数时,地方参数必需在首要字参数的方今,但根本字参数之间不真实前后相继顺序的

<2> IntegerField
#用以保存一个整数.

urllib和urllib2的严重性分裂

 urllib和urllib2都是经受UWranglerL央浼的连锁模块,然而提供了区别的机能,最显著的界别如下:

(1卡塔 尔(阿拉伯语:قطر‎urllib仅能够承担U中华VL,不能创设,设置headers的request类实例;

(2卡塔尔国然而urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2则从未(那是urllib和urllib2平时一同行使的首要性原因卡塔 尔(阿拉伯语:قطر‎

(3卡塔尔国编码职业选用urllib的urlencode()函数,帮大家讲key:value那样的键值对调换到‘key=value’那样的字符串,解码工作能够应用urllib的unquote()

函数

 urllib.encode()的使用

urlencode(卡塔尔里面必须是字典类型

# _*_ coding:utf-8 _*_
import urllib

dic = {'derek':'编码'}
print urllib.urlencode(dic)    #derek=%E7%BC%96%E7%A0%81

m = urllib.urlencode(dic)

print urllib.unquote(m)         #derek=编码

方法/步骤

运行python-3.6.4-amd64.exe,CPU是INTEL i5见到英特尔64有一点有些别扭,能选都选上路线都不改成功安装。确定PATH:Computer-System Properties-Advanced-Environment Variables...如:D:usersf29691aAppDataLocalProgramsPythonPython36。注意后续pywin32的本子需相近,PYTHON其余版本自个儿也能成功安装可最后安装PyInstaller或pywin32时报错不大概左右逢原安装。

运营pywin32-222.win-amd64-py3.6.exe 安装中其会检查测量试验已安装的python版本,独有见到成功安装才有用。

解压PyInstaller-3.3.1.tar至D:根目录下,运转命令行CMD进入此目录,

//步入子目录 bootloader

cd bootloader

//build the bootloader 运行

python ./waf configure build install

//重新进入根目录

cd ..

//安装pyinstaller

python setup.py install

//from

#KEY#:安装中Reading : Could not find suitable distribution forRequirement.parse('future')可在浏览器中展开上述网址规定链接符合规律后CMD中再度python setup.py install,亲测使用邮电通讯手提式有线电话机开热门给PC成功安装。

CMD至pyinstaller安装路径:pyinstaller --version命令

 D: PyInstaller-3.3.1>pyinstaller --version

3.3.1若特别会显得各个缺乏文件和语法错误。

CMD至pyinstaller安装路线,尝试转变三个大概的*.PY成*.exe:

pyinstaller -F D:PYTHONSHI.py

转移的EXE文件会被归档到子文件夹dist中。

三、默许参数

用来定义函数,为参数提供暗中同意值,调用函数时可传可不传该默许参数的值(注意:全体地方参数必得出以后默许参数前,包含函数定义和调用卡塔尔

# 正确的默认参数定义方式--> 位置参数在前,默认参数在后
def print_hello(name, sex=1):
    ....

# 错误的定义方式
def print_hello(sex=1, name):
    ....

# 调用时不传sex的值,则使用默认值1
# print_hello('tanggu')

# 调用时传入sex的值,并指定为2
# print_hello('tanggu', 2)

<3> FloatField
# 二个浮点数. 必需 提供四个参数:
#
# 参数 描述
# max_digits 总位数(不包涵小数点和标识)
# decimal_places 小数位数
# 比释迦牟尼讲, 要保存最大值为 999 (小数点后保存2位),你要如此定义字段:
#
# models.FloatField(..., max_digits=5, decimal_places=2)
# 要保留最大值一百万(小数点后保存九位)的话,你要这么定义:
#
# models.FloatField(..., max_digits=19, decimal_places=10)
# admin 用一个文本框(<input type="text">)表示该字段保存的数据.

貌似HTTP须求提交数据,须要编码成 UENCOREL编码格式,然后做为url的一片段,大概当作参数字传送到Request对象中。

GET央浼经常用于大家向服务器获取数据,举例说,我们用百度查寻知乎

发现GET

图片 9

 

 

图片 10

图片 11

用urllib.urlencode()实行转码,然后组合url

# _*_ coding:utf-8 _*_
import urllib,urllib2

url = 'http://www.baidu.com/s'
headers = {'UserAgent':'Mozilla'}
keyword = raw_input('请输入关键字:')
wd = urllib.urlencode({'wd':keyword})
fullurl = url + '?' + wd
print fullurl
request = urllib2.Request(fullurl,headers=headers)
response = urllib2.urlopen(request)
print response.read()

接下来输加入关贸总协定协会键字,爬取下相应的原委

图片 12

 图片 13

原料

SHI.PY :效能为调换EXCEL文件名字为AWL文件名内容未定。

import os;
print("Hello, World!");
#file_path=os.getcwd();
sourcefile=input("Drap *.xls to this window");
file_name=sourcefile+'.awl'
content='Hellon,Worldpython的岗位参数,数据类型和进制转变。t'
print(content);
print(file_name);
if os.path.exists(file_name):
    os.remove(file_name);
F=open(file_name,'a+');
F.write(content);
F.write(":D");
F.close();
input();

四、可变参数

概念函数时,不常候大家不明确调用的时候会传递多少个参数(不传参也足以)。那时,可用包裹(packing)地点参数,可能包裹关键字参数,来实行参数字传送递,会显示煞是有助于。

<4> AutoField
# 二个 IntegerField, 增添记录时它会活动增进. 你日常没有必要直接选拔这么些字段;
# 自定义一个主键:my_id=models.AutoField(primary_key=True)
# 假诺您不点名主键的话,系统会自行抬高多个主键字段到您的 model.

本文由皇家国际app发布,转载请注明来源:python的岗位参数,数据类型和进制转变