python简易爬虫
2016-07-22 21:07
453 查看
这两天看了一下python的基础语法,跟着网上的教程爬了一下百度百科和python相关联的词条。采用了beautifulsoup4插件
下面是流程
首先是一个url管理器,负责增加/获取/判断是否有url
spider_main.py
然后是输出结果的截图
另外网页的信息保存到了output.html文件中
下面是流程
首先是一个url管理器,负责增加/获取/判断是否有url
# coding:UTF8 # 以入口url为参数爬取相关页面 from baike_spider import url_manager, html_downloader, html_parser, html_outputer class SpiderMain(object): #构造函数声明url管理器,网页下载器,网页解析器,网页输入器 def __init__(self): self.urls = url_manager.UrlManager() self.downloader = html_downloader.HtmlDownloader() self.parser = html_parser.HtmlParser() self.outputer = html_outputer.HtmlOutputer() def craw(self, root_url): #记录爬取的网页数 count = 1 #把入口url传入 self.urls.add_new_url(root_url) #当new_urls里面还有元素时 while self.urls.has_new_url(): try: #获取一个新的url new_url = self.urls.get_new_url() print 'craw %d:%s' % (count, new_url) #接收网页的内容 html_cont = self.downloader.download(new_url) #获取新的url 和需要的网页上的内容 new_urls, new_data = self.parser.parse(new_url, html_cont) self.urls.add_new_urls(new_urls) #拼接数据字符串 self.outputer.collect_data(new_data) if count == 1000: break count = count + 1 except: print 'craw failed' #向output.html写入数据 self.outputer.output_html() if __name__ == "__main__": root_url = "http://baike.baidu.com/view/21087.htm" obj_spider = SpiderMain() obj_spider.craw(root_url)
spider_main.py
然后是输出结果的截图
另外网页的信息保存到了output.html文件中
相关文章推荐
- 简洁Python命名规范
- python 判断一个数是否为回数
- CSVs in Python
- Dropbox 用什么语言开发的?(Python在各个平台都是全能的,特别是有PyObjC真没想到)
- Python.Extracting Data from XML
- Python.Following Links in HTML Using BeautifulSoup
- python使用urllib2抓取防爬取链接
- python-pickle/cPickle/glob/tarfile
- 转载:python使用urllib2抓取防爬取链接
- Numpy 常用函数及读写操作
- Python 关于正负无穷float(‘inf’)的一些用法
- Python之urlparse模块
- python中ascii码和字符的转换
- 利用python如何刷访问量
- python 之编码转换 unicode, utf-8, utf-16, GBK
- python 多线程爬虫
- 记一次安装Ipython的流程
- Python sort系列
- python排序函数sort()、sorted()、argsort()
- 文本处理(python)