一、 Python的开发工具
用的是Sublime Text3
需要配置Python的系统环境变量:
Tools–>Build System –> New Build System –>此时会打开一个新的文件
//这里就是编辑器的系统环境
{
//这里的cmd是你的python的exe的位置,记得复制的时候一定要把反斜杠换为正斜杠,否则不认。
"cmd": ["C:/Users/sy/AppData/Local/Programs/Python/Python35-32/python.exe","-u","$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8"
}
使用Sublime Text3 的时候也可安装package control 这个插件,具体安装百度一下代码。
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())
通过Ctrl + ` 可以调出控制台命令行,然后复制代码即可安装完成。
随后找到python的代码补全工具,通过:
1. 按下Ctrl+Shift+P调出命令面板
2.打开Package Control[Preferences>>Package Control]
3.输入 install 选择关联出来的install package
4.自动补全插件搜索 Jedi 或者 Python AutoComplete。
二、创建Hello World
File –> new File
然后打开一个新的文件,保存一下,命名的时候加上后缀.py即可
#coding=utf-8
print ("Hello world!")
即可看到控制台输出,因为在Python3中print已经为函数了,所以必须要加上()来配合print使用。
三、Python3.xx的正则表达式
//可以通过re这个模块来实现正则表达式的匹配
import re
word = "http://www.baidu.com_Python3.5"
//匹配数字,要是大写就是相反例如\D就是非数字
key = re.findall("\d",word)
//匹配小数点
key = re.findall("\.",word)
//还有许多语法,自己去百度即可,使用的方法是如上这样,还有一种我觉得要写的太多了,所以以后就用findall就行。
四、Python3的urllib,requests,
3.0版本中已经将urllib2、urlparse、和robotparser并入了urllib中,并且修改urllib模块,其中包含5个子模块,即是help()中看到的那五个名字。
1.先说urllib
在Python2中urllib分为urllib和urllib2
而Python3中把urllib2规划到urllib里去了,调用的时候要如下调用:
//这是调用的urllib
import urllib
//这是调用的urllib2
import urllib.request
但是有一点,在urllib中要是使用urlopen需要这样使用
import urllib.request
html = urllib.request.urlopen('www.baidu.com')
print(html.read())
错误的下图:
正确的下图:
而爬取图片的代码也有所改变
//Python2
urllib.urlretrieve(imgurl,'%s.jpg' % x)
//Python3
urllib.request.urlretrieve(imgurl,'%s.jpg' % x)
2.requests
Python3中的request,他是一个第三方库
windows下,我们找到Python的安装路径,下面有一个文件夹叫Scripts,进入后在这个文件夹下打开命令行输入:
pip install requests
安装完成后即可使用此模块
//常用的两个发送网络请求
import requests
url = "http://www.baidu.com"
r = requests.get(url)
r = requests.post(url)
//定制请求头
import requests
url = "http://www.baidu.com"
headers = {'content-type':'application/json'}
r = requests.get(url,headers=headers)
//headers可以加入cookies,在以后的爬虫里,把cookie加入请求头中可以少了登录的操作。。
//相应状态吗
import requests
url = "http://www.baidu.com"
r = requests.get(url)
print (r.status_code)
//结果返回了200
//Cookies
import requests
url = "http://www.baidu.com"
r = requests.get(url)
r.cookies['example cookie name']
//超时
import requests
url = "http://www.baidu.com"
//设置在0.001s后超时
r = requests.get(url,timeout=0.001)
//错误和异常
遇到网络问题(如,DNS查询失败,拒绝连接等)时
,Requests会抛出一个ConnectionError异常。
遇到罕见的无效HTTP响应时,Requests则会抛出一个HttpError异常
若请求超时时,则抛出一个Tiemout异常
//复杂的post请求
payload = {'key1':'value1','key2':'value2'}
r = requests.post(url,data=payload)