1.网络爬虫初识
(1)如何查看模块功能[help()]以及如何安装模块
(2)网络爬虫是什么:自动从互联网中定向或不定向地采集信息的一种程序。(通用网络爬虫,聚焦网络爬虫等)
(3)网络爬虫能做什么事情:
搜索引擎
采集金融数据
采集商品数据
自动过滤广告
采集竞争对手的客户数据
采集行业相关数据,进行数据分析
......
2.网络爬虫原理
(1)网络爬虫运行原理
3.正则表达式实战
(1)原子:是正则表达式中最基本的组成单位,每一个正则表达式中至少要包含一个原子。
常见原子类型:
a.普通字符作为原子
b.非打印字符作为原子
c.通用字符作为原子
d.原子表
爬取网站相关内容:
import re
pat="yue"
string="http://yum.iqianyue.com"
rst=re.search(pat,string)
print(rst)
搜索原子(非打印字符):
pat="\n"
string='''scscndu
cinisscao'''
rst=re.search(pat,string)
print(rst)
通用字符:
\w匹配任意一个字母数字下划线
\d匹配任意十进制数
\s匹配空白字符
\W匹配与\w相反的字符
pat="\w\dpython\w"
string="sdndvnsvdsd8pythondsvbbb"
rst=re.search(pat,string)
print(rst)
原子表:
pat="pyth[snf]n"
string="dsviafvnepythnncacj"
rst=re.search(pat,string)
print(rst)
(2)元字符:正则表达式中具有特殊一些特殊含义的字符。
.匹配除了换行符以外的任何字符
^匹配字符串的开始的位置
$匹配字符串的结束的位置
*匹配0次1次或多次前面的原子
?匹配0次或1次前面的原子
+匹配1次或多次前面的原子
{n}前面的原子恰好出现n次
{n,}前面的原子至少出现n次
{n,m}前面的原子至少出现n次,至多出现m次
| 模式选择符(t|s t或s)(只匹配满足条件的字符串中的第一个)
(3)模式修正符:(re.)
I(大写i)忽略大小写
M进行多行匹配
L本地化识别匹配
S使.匹配换行符
pat="python"
string="sdhcudvPythondsvhuev"
rst=re.search(pat,string,re.I)
print(rst)
(4)贪婪模式与懒惰模式:
贪婪模式(p.*y):尽可能多的匹配
懒惰模式(p.*?y):尽可能少的匹配
(5)正则表达式函数:
re.match函数:从头开始搜索
re.search函数
全局匹配函数:
pat="p.*?y" string="sdhcudvpythondsvhupsjdyev" rst=re.compile(pat).findall(string) print(rst)
re.sub函数
(6)常见正则实例:
pat="[a-zA-Z]+://[\S]*[.com|.cn]"
string='<a harf="http://baidu.com>hasghj</a>'
rst=re.compile(pat).findall(string)
print(rst)
(7)简单的爬虫
爬取网站QQ群
爬取网页内容:
import urllib.request
data=urllib.request.urlopen("https://www.bilibili.com/anime/?spm_id_from=333.1007.0.0").read()
data=data.decode("utf-8")
import re
pat=style='data-v-c236a28e>(.*?)</a></li><li class="crumb-item'
mydata=re.compile(pat).findall(data)
mydata