|
副标题[/!--empirenews.page--]
一、写在前面
由于在平时的工作中,需要对某信托网的信托在售和资管在售数据进行统计分析,但是一条一条的输入,显然太过耗时耗力,于是萌生了写个爬虫的想法。
一门计算机语言,可以当做是在模仿人的目的或意图来进行一系列行为或动作,所以在写代码之前,首先要弄清楚你要干什么,如果是你,你每一步的动作是什么,然后将这一步步的动作通过代码传递给计算机,让计算机高效的帮你完成即可。
本文结合正则表达式和比较流行的beautifulsoup(bs4),对网页进行解析并提取数据,因此在正式进行之前,有必要简单介绍下正则表达式和bs4.
二、基础知识
1、正则表达式
具体的详细介绍可自行去网上补知识,这里只介绍一些规则和常用的用法。
- # 正则表达式
- 规则:
- 单字符:
- . : 除换行以外所有字符
- [] : 匹配集合中任意一个字符
- d : 数字
- D : 非数字
- w : 数字、字母、下划线、中文
- W : 非数字、字母、下划线、中文
- s : 空格
- S : 非空格
- 数量修饰:
- * : 任意多次
- + : 至少1次
- ?: 非贪婪方式,可有可无
- {m} : 固定m次
- {m+} : 至少m次
- {m,n} : m到n次
- 起始:
- ^ : 以啥啥开头
- $ : 以啥啥结尾
- 常用组合和函数:
- .* : 贪婪方式任意字符任意次数
- .*? : 非贪婪方式任意字符任意次数
- r = re.compile(r'正则表达式',re.S) :
- 最常用:将规则传递给某个参数以便反复使用
- re.matchre.search(字符串)
- re.findall(字符串)
- re.sub(正则表达式,替换内容,字符串)
2、bs4
同样,详细知识自行补,这里只介绍常用的用法:select结合选择器的用法。
- # bs4用法
- 首先加载里面的BeautifulSoup:
- from bs4 import BeautifulSoup
- soup = BeautifulSoup('网页响应回来的东西')
主要有以下几种提取规则:
- 1、获取标签
- soup.a 获取a标签(第一个)
- 2、获取属性
- soup.a.attrs 获取a标签下所有的属性和值,返回的是字典
- soup.a['name'] 获取a标签下的name属性
- 3、获取内容
- soup.a.string()
- soup.a.text() 建议使用这个
- 4、find用法
- soup.find('a') 找到第一个a
- soup.find('a',title='') 附加条件的查找
- 5、find_all用法
- soup.find_all('a') 找到所有a
- soup.find_all(['a','b']) 找到所有a和b
- soup.find_all('a',limit=5) 找到前5个a
- 6、select用法——重点
- 结合选择器使用,常用的选择器如下:
- 标签选择器:如div表示为div
- 类选择器:.表示,如class = 'you'表示为.you
- id选择器:#表示,如id = 'me'表示为#me
- 组合选择器:如div,.you,#me
- 层级选择器:如div .you #me表示选取div标签下的you类下的id为me的内容
- 再如div > .you > #me,> 则表示只能是下面一级
三、开始实战——爬取某信托网的信托在售数据
1、爬取前的准备工作——梳理好代码的逻辑
正如前面所说,写代码之前,首先要清楚你想要干什么,如果是你,你是什么样的动作来达到你的这个目的或意图。
(编辑:PHP编程网 - 钦州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|