python基础:简单实现从网页中获取小说名单列表并存入文件中
1.技术储备
requests:requests是使用Apache2 licensed 许可证的HTTP库,可以用于网页数据请求
requests.get():发起网络请求的一种方式,类似的还有post、 put、 delete、 head等请求方式,主要掌握get,post
requests.get():该方法的必填参数是url,也就是请求网页数据的网页路径,其它参数都是非必填参数,例如params网络请求中的参数,headers网络请求中的请求头等等
requests.get():该方法具有返回值,返回的是response对象,这个对象是属于requests.models.Response类,这个response对象也有一些非常重要的属性和方法,例如status_code表示响应码,如果响应码为200,表示请求成功;response.content能把Response对象的内容以二进制数据的形式返回,适用于图片、音频、视频的下载;response.text这个方法可以把Response对象的内容以字符串的形式返回,适用于文字、网页源代码的下载等等
BeautifulSoup:BeautifulSoup是主要以解析web网页的Python模块,它会提供一些强大的解释器,以解析网页,然后提供一些函数,从页面中提取所需要的数据,目前是Python爬虫中最常用的模块之一。在使用前需要安装库,这里建议安装bs4,也就是第四版本,因为根据官方文档第三版的已经停止更新
解析文档,建立一个BeautifulSoup对象,各种函数都是针对此对象展开,此函数输入文档自动编码为Unicode ,输出文档自动编码为utf-8编码,所以基本不用考虑编码问题。
soup = BeautifulSoup(html,‘lxml’),BeautifulSoup()有两个参数
参数1:需要解析的文本,可以使字符串,可以使本地文件
参数2:解释器,这里有"lxml", “lxml-xml”, “html.parser”, or “html5lib”,4种,可以解析绝大多数网页,常用lxml解析;html.parser是自带的解析器,也比较常用。 这里有一个坑,如果网页中没有规定编码格式,解释器就不能编码为Unicode,必须先声明一下编码格式,只需要到网页源码中查找编码格式然后做个声明就可以。一般在网页中查找charset关键字
文档对象soup常用的一些方法:
prettify():美化文档
解析数据的方法有很多,例如:soup.find();soup.find_all();soup.select()等方法,它还有很多的属性,在这就不再一一强调了,我常用的方法是soup.select(),查找到自己想要的数据,根据传入select的参数来看此方法的返回值,然后进行值的处理。
文件写入操作:参考之前编写的文件操作
2.代码实现:
–行动是治愈恐惧的良药,犹豫拖延将不断滋养恐惧