爬虫分为多线程,单线程爬虫,其中单线程爬虫的步骤主要分成三部分.
第一部分:读取目标网页的内容,如果遇到多个网址,那就要用到循环语句,while,把页码传到网址里面去(个人认为format方法比较好)。解析网页就要用到python的外接库了(python这点很好,不用自己造轮子,直接拿过来用就行了),比如说BeautifulSoup,requests,Selenium,urllib2.
第二部分查看网页源代码,利用正则表达式,把想要的内容匹配下来。
第三部分:数据可视化,爬下来的数据那么多,总要找个容器放置那些数据吧。
关于多线程爬虫,知乎上有个答案说的特别好,爬虫入门,下面截取一部分:
1)首先你要明白爬虫怎样工作。
想象你是一只蜘蛛,现在你被放到了互联“网”上。那么,你需要把所有的网页都看一遍。怎么办呢?没问题呀,你就随便从某个地方开始,比如说人民日报的首页,这个叫initial pages,用$表示吧。
在人民日报的首页,你看到那个页面引向的各种链接。于是你很开心地从爬到了“国内新闻”那个页面。太好了,这样你就已经爬完了俩页面(首页和国内新闻)!暂且不用管爬下来的页面怎么处理的,你就想象你把这个页面完完整整抄成了个html放到了你身上。
突然你发现, 在国内新闻这个页面上,有一个链接链回“首页”。作为一只聪明的蜘蛛,你肯定知道你不用爬回去的吧,因为你已经看过了啊。所以,你需要用你的脑子,存下你已经看过的页面地址。这样,每次看到一个可能需要爬的新链接,你就先查查你脑子里是不是已经去过这个页面地址。如果去过,那就别去了。
好的,理论上如果所有的页面可以从initial page达到的话,那么可以证明你一定可以爬完所有的网页。
本人也是初次接触python和爬虫,要学习的地方还有很多,目前只是把别人的代码重新输入一遍,可以说还没有入门。任重而道远啊
网友评论