用python写爬虫的主要思路

去年大概是十月份的时候开始学习python编程,花了大概一个月时间看完了《Python编程:从入门到实践》这本书,把里面的示例代码都手敲了一遍,掌握了python的语法知识,看完这本书后,决定找些项目练练编程,于是各种搜索,最后发现有很多人推荐说是写爬虫是上手python编程的一个很好的选择,于是开干。

什么是爬虫呢?当我们打开浏览器,输入网址,就会出现网页,网页上有文字,有图片,有视频,爬虫就是一些脚本文件,这些脚本能够按照一定的规则从网页上把我们需要的文字、图片或者视频下载下来。这里的下载和我们平时所说的下载有点区别,主要区别在下载的数量上,如果就是简单的下点东西,那根本用不到爬虫,但是要是想把网站上所有想要的信息(比如所有的图片或者所有的小说)一次下载,那就需要写爬虫了。

这篇博客意在介绍写爬虫的大体思路,不涉及具体的细节。总结起来,利用爬虫爬取信息的步骤如下:

第一,利用requests或者urllib(二者都是python库)向网站服务器请求网页的html文件;

第二,利用bs4、xpath、re等解析上一步得到的html文件,目前用的最多的是bs4,因为它上手门槛比较低,学起来相对容易点,对于初学者来说是最佳选择。但其实个人感觉效率最高的是re,即正则表达式,正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等;正则表达式的缺点是学起来不是很简单,需要多花点时间;

第三,将上一步解析得到的目标信息存储下来,不同的信息有不同的存储方法,比如文本信息最简单的就是保存为txt文档;图片信息直接下载到特定文件夹中即可。如果信息量非常庞大的话,就需要用到数据库了。

以上就是写爬虫的主要步骤,技术难点主要在这样几个方面:首先,要了解http、html等相关的知识,不需要精通,只需明白其原理即可;然后,需要学习requests、bs4等这些python第三方库的使用;其次,学习如何保存信息,比如如何将爬下来的小说写入txt,如何存储下载下来的图片至特定的文件夹,更进一步,利用python如何操作数据库等;最后,就是学习如何突破反爬虫的限制,目前很多大型网站都有专门的反爬虫措施,如果短时间内同一个ip对网站的访问量非常巨大,那么很可能这个ip就会被封掉,爬虫就进行不下去,反反爬虫的措施有:设置延时,构造ip池等。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注