上一节学习了如何解析网页,说白了就是怎么将一个html文件中的信息提取出来,当然这需要有一定的html基础,这样对于一些标签的使用更加的容易和方便一些。解析来要学习的内容就是上节提到的比较常用而且比较重要的一个东西:正则表达式。然后讲一下如何将数据存储到excel表格当中。
一、正则表达式
正则表达式简单来说就是:判断一个字符串是否符合一定的标准,当然这个标准就是我们想要爬取到的信息。利用正则表达式将我们想要提取的信息样式表达出来,然后直接匹配爬取即可!
代码测试
首先需要引入一个包:re,然后创建一个标准,和目标字符串进行比对。
当然比较常见的正则表达式都可以在网上查到,只需要知道用法,会写一些基本的正则表达式即可。
# 正则表达式:字符串模式(判断字符串是否符合一定的标准)
import re
# 创建模式对象
pat = re.compile("AA") # 此处的AA,是正则表达式,用来去验证其他表达式
m = pat.search("CBAA") # search字符串被校验的内容
# 简写(没有模式对象)
m = re.search("asd", "ffasd")
print(m)
print(re.findall("a", "ASDaDFDAa")) # 前面是正则表达式,后面是要校验的字符串
print(re.findall("[A-Z]", "ASDaDFDAa")) # 找大写字母
print(re.findall("[A-Z]+", "ASDaDFDAaS")) # 把连起来的大写字母找出来
print(re.sub("a", "A", "abcdcasd")) # 找到a用A替换(在第三个字符串中)
# 建议在正则表达式中,被比较的字符串前面加上r,不用担心转义字符的问题
a = r"\aabd-\'"
print(a)
二、保存数据
爬取到了数据之后,我们如果想要将数据保存起来也有很多种方法,比如excel表,数据库等等,这里我先学习了比较简单的一种方法,就是存入excel表格当中,存入数据库后面再学习。
代码测试
这里首先也需要引入一个包:xlwt,然后先创建一个workbok对象,在这个对象下面创建一个sheet工作表,利用write函数将对应矩阵位置的数据写入即可,最后进行save保存。
下面我写了一个九九乘法表,作为一个实例。
import xlwt
workbook = xlwt.Workbook(encoding="utf-8") # 创建workbook对象
worksheet = workbook.add_sheet('sheet1') # 创建工作表
for i in range(1, 10):
for j in range(1, 10):
if i >= j:
worksheet.write(i-1, j-1, "%d * %d = %d"%(i, j, i*j))
workbook.save('student.xls')
总结
从爬取网页,到后面数据的解析,再到数据的保存,基本的内容已经学习完了,那么接下来就是对我们想要的数据进行爬取并且保存了。下一篇我将会对豆瓣电影Top250的一些电影信息进行爬取并且保存。