一、IDLE安装(windows)
1、网上下载安装包,傻瓜式安装,一般会自动配置环境变量。
2、cmd →python 检查是否顺利安装完成
二、运行
在开始菜单栏找到"IDLE(Python 3.5 64-bit )",单击打开,自动运行。
在Shell里面 输入 print("hello"),输出为 hello;
或CTRL+N新建文件,保存为.py格式,写入代码后,按F5运行。
三、正则表达式
1、元字符
匹配 uio 里面的任意 一个 字符。
匹配除 换行符外的字符。
\w,匹配任意一个 字母数字下划线
\d,通用字符,匹配任意一个十进制数
\s,匹配任意空白字符
\W,匹配除字母数字下划线外的任意字符
\D,匹配十进制外的任意一个字符
\S,匹配空白字符外的任意一个字符
+,匹配1次或多次。s+:不能匹配s,可以匹配ss
?,匹配0次或1 次。s?:匹配 ss、s,不能匹配sss
*,匹配0次1次或多次。s*:匹配s、ss、sss,ssss
{n}:出现n次
{n,}:至少出现n次
s{m,n}:出现次数在m到n之间
t|s:匹配t或s中的某一个。二者同等地位。
(n)提取其中的某一个数字
2、模式修正符
I:不区分大小写
M
L
U:根据UNIC字符
S:让点(.)也能匹配换行符
3、贪婪模式与懒惰模式(?)
贪婪模式:尽可能匹配多的字符。
懒惰模式:更精准的定位。
4、正则表达式函数
re.match()从字符串中搜索满足条件的字符,必须从头开始,如果头不匹配,不输出。
re.search()从字符串中搜索满足条件的字符,从哪个位置开始无所谓。
re.sub()替换
因为pat2="p.*?y" 用re.search()只能搜索出一个满足条件的字符,
采集满足条件的多个出版社时,用全局搜索函数compile搜索。
5、匹配网址
string里面有双引号,所以将外面改为单引号,以便区分。
^的含义是:匹配输入字行首。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 [^,] 除了逗号之外的任何字符 [^,]* 0或者多个非逗号字符 [^\s]*:0个或多个非空白字符。(\s匹配任意空白字符,*匹配0个或多个字 |
四、爬取网页上的信息
1、爬取网页上的一个微信号
首先确定网页网址:https://edu.csdn.net/huiyiCourse/detail/836 和 所爬信息的位置<p> 微信:csdn02</p>
在Shell里:
>>> import re
>>> import urllib.request
>>> pat=' <p> 微信:(.*?)</p>'
>>> data=urllib.request.urlopen("https://edu.csdn.net/huiyiCourse/detail/836").read()
>>> result=re.compile(pat).findall(str(data))
>>> print(result)
[] #错误
2、爬取豆瓣出版社列表并保存在记事本中
>>> import re
>>> import urllib.request
>>> pat='<div class="name">(.*?)</div>'
>>> data=urllib.request.urlopen("https://read.douban.com/provider/all").read()
>>> data=data.decode("utf-8")
>>> mydata=re.compile(pat).findall(data)
>>> mydata
>>> fh=open("D:/python代码/2.txt","w")
>>> for i in range(0,len(mydata)):
fh.write(mydata[i]+"\n")
#有时无法保存在记事本中