最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址。刚开始学习python希望可以获得宝贵的意见。
先来简单介绍一下,网络爬虫的基本实现原理吧。 一个爬虫首先要给它一个起点,所以需要精心选取一些URL作为起点,然后我们的爬虫从这些起点出发,抓取并解析所抓取到的页面,将所需要的信息提取出来,同时获得的新的URL插入到队列中作为下一次爬取的起点 。这样不断地循环,一直到获得你想得到的所有的信息爬虫的任务就算结束了。我们通过一张图片来看一下。
Python资源共享群:626017123
好的 下面进入正题,来讲解下程序的实现。
首先要分析一下电影天堂网站的首页结构。
从上面的菜单栏中我们可以看到整个网站资源的总体分类情况。刚刚好我们可以利用到它的这个分类,将每一个分类地址作为爬虫的起点。
①解析首页地址 提取分类信息
#解析首页 def CrawIndexPage(starturl): print "正在爬取首页" page = __getpage(starturl) if page=="error": return page = page.decode('gbk', 'ignore') tree = etree.HTML(page) Nodes = tree.xpath("//div[@id='menu']//a") print "首页解析出地址",len(Nodes),"条"