爬虫基础一

学习内容:

1.爬虫基本原理

2.urllib库基本使用

3.正则表达式基础


1.response响应状态

200代表成功,301跳转,404找不到页面,502服务器错误

2.解析方式:直接处理,Json解析,正则表达式,BeautifulSoup,PyQuery,XPath

3.保存数据:纯文本,关系型数据库,非关系型数据库,二进制文件

4.urllib库:python内置的HTTP库

urllib.request  请求模块   urllib.error   异常处理模块

urllib.parse  url解析模块

5.响应方式:response.read().decode('utf-8')

6.请求方式:

from urllib import request,parse
url='http://httpbin.org/post'
headers={
}
dict={  
'name':'Germey'
}
data = bytes(parse.urlencode(dict),encoding='utf8')
req=request.Request(url=url,data=data,headers=headers,method='post')
reponse=request.urlopen(req)
print(response.read().decode('utf-8'))

7.正则表达式

常见匹配模式

w  匹配字母数字及下划线

W  匹配非字母数字下划线

s  匹配任意空白字符

S  匹配任意非空字符

d  匹配任意数字

D  匹配任意非数字

A  匹配字符串开始

  匹配字符串结束,如果存在换行,只匹配到换行前的结束字符串

z  匹配字符串结束

最常规的匹配

import re
content = 'Hello 123 4567 World_This is a Regex Demo'
print(len(content))
result = re.match('^Hellosdddsd(4)sw{10}.*Demo$',content)
print(result)
print(result.group())
print(result.span())

运行结果:

 泛匹配

import re
content = 'Hello 123 4567 World_This is a Regex Demo'
result = re.match('^Hello.*Demo$',content)
print(result)

匹配目标

import re
content = 'Hello 123 4567 World_This is a Regex Demo'
result = re.match('^Hellos(d+)sWorld.*Demo$',content)
print(result)
print(result.group(1))
print(result.span())

re.search扫描整个字符串并返回第一个成功的匹配

总结:为匹配方便,能用search就不要match

re.findall  搜索字符串,以列表形式返回全部能匹配的子串

re.sub  替换字符串中每一个匹配的子串后返回替换后的字符串

import re
content = 'Hello 123 4567 World_This is a Regex Demo'
re.sub('d+','',content)

re.compile  将正则字符串编译成正则表达式对象,将一个正则表达式编译成正则对象,以便于复用该匹配模式

原文地址:https://www.cnblogs.com/-2016/p/12210449.html