怎样写一个蜘蛛程序?

确认只抓外链吗?最简单的思路框架是:打开并读取目标网页内容,可以使用urllib2、request等库;解析网页内容,寻找外链的链接地址。可以使用re写正则表达式来处理(类似于抓\u0026lt;a href="http://xxxxxxxxx" a\u0026gt;字段并提取其中的一部分),也可以通过beautifulsoup等专门的html解析库来处理;从外链地址中提取网站名称。这个应该用re就可以简单解决了;比较此次获取的网站名称、之前存储的网站名称。如果重复,则跳过;如果无重复,则保存此次获取的网站名称。定时输出保存搜索结果。不停循环上述过程,直到达到你的设计目标。不过需要注意的是:有一些网站不希望被爬虫爬取,会留有robot.txt文件进行说明。爬虫程序最好尊重别人设定的限制。为了减小对目标网站的访问负担,建议不要在短时间内对某一个网站发起大量链接,可以用time.sleep()等方式均衡负载。以上只是最简单的思路,根据实际任务情况的不同,可能会有很多需要扩展的地方,比如:有一些网站要求用户验证,需要打开网页时特别设置;网站编码问题,特别是正则表达式的编码要和网页编码相一致(特别是re搜索中文的时候);连接并打开网页是否成功?不成功应当怎么处理?有一些网页内容可能是通过ajax动态加载的,这可能就需要额外的解决方案了(比如selenimum, phantomJS等等)。有时为了提高抓取效率需要进行多线程扩充,这就涉及到Queue、multithreading等许多额外的库了。
■网友
先从基础知识学起请搜一下 python爬虫联想词视频。复杂的有scrapy框架搜索深度和广度优先算法。
■网友
PySpider首页、文档和下载国内做的Python spider程序。只抓URL的话,py3导入urllib.request,urllib.request.urlopen(url)读取到HTML文档后用正则匹配一下就好了;或者用beautiful soup分析页面,提取\u0026lt;a\u0026gt;标签的href属性。


    推荐阅读