爬虫新手一枚,因为工作原因需要学习相关的东西。发表下这段时间学习的心得,有说得不对的地方欢迎指指点点。
一.什么是爬虫
在学习爬虫之前只对爬虫有个概念性的认识。通过向服务器发送请求获取服务器传回信息,再根据其提取所需的信息。原理虽然简单,但是涉及的细节非常多,从一个坑爬出来又掉进另一个坑。
二.post和get
post和get是两种向服务器发送请求的方式,有些http基础的同学应该都清楚他们的用处,在写爬虫时,涉及到同服务器交互肯定是离不了这两种方法的。其中get请求用于一系列对服务器数据没有影响的操作,如获取html,检索等,而post一般是用于对服务器数据有影响的功能,如提交表单等。如果只是简单爬取信息,一般用get方法。除此之前,get方法的安全性较Post方式要差些,如果需要提交包含机密信息的话,建议用Post提交方式,但get的执行效率比post方法好。
三.编码方式
这是跌进的第一个坑。源于对一个网页爬取时,不管怎么样都失败,浪费了将近一天时间才发现是编码混乱的原因造成。目前大多数中文网站采用GBK,GB2312,UTF-8这三种编码方式进行编码,详细的编码原理可查阅其他资料。通常在获取一个网页的html代码后都会先根据其编码方式进行转码,下面用python对从path获取的网页根据utf-8的方式进行转码。
html=urllib.request.urlopen(path).read().decode("utf-8")
正常来说,一个网页只会有一种编码方式,通过上述的代码就能完成对其的转码。但是,如果在一个网页里存在两种编码方式的字符会怎么样?对,就是这个原因导致我在这个问题上卡了将近一天。对我这个刚接触爬虫的