Python爬虫
Badtom_sh
博观而约取,厚积而薄发。
展开
-
Python爬虫学习(一)
爬虫基本框架(单机版)伪代码,本质是一个多叉树层次遍历算法,图的广度优先搜索:import Queue#设置初始网页,树根initial_page = "http://www.badtom.cn"#新建待爬队列,已爬集合url_queue = Queue.Queue()seen = set()#初始化待爬队列,已爬集合seen.insert(initial_page)url_que...原创 2018-04-20 10:02:29 · 212 阅读 · 0 评论 -
Python爬虫学习(二)
第一步,读取单页面:import urllib.request url = "http://www.badtom.cn"data = urllib.request.urlopen(url).read()data = data.decode('UTF-8')print(data)第二步,对前篇单机版伪代码的简单实现:from collections import dequeimport...原创 2018-04-21 21:27:11 · 165 阅读 · 0 评论 -
Python爬虫学习(三)
使用第三方库requests与BeautifulSoup实现登录功能:import requestsfrom bs4 import BeautifulSoup headinfo = { 'Connection': 'Keep-Alive', 'Accept': 'text/html, application/xhtml+xml, */*', 'Accept-Langu...原创 2018-04-21 21:27:16 · 174 阅读 · 0 评论 -
Python爬虫学习(四)
对前篇实现的python爬虫进行模块化、组件化。分为过滤器去重模块,提取链接模块,页面处理模块、登录模块和主流程模块,目前非常粗糙,有待完善,代码如下:、主流程模块,程序入口:main.pyfrom collections import deque import requests from extracter.myextracter import myextracterfrom filt...原创 2018-04-21 21:27:23 · 233 阅读 · 0 评论 -
Python爬虫学习(五)
前几篇博文写的都是单机版爬虫,但是该单机版存在一些明显的问题: 1)无法保存爬虫的中间状态。如果爬到一半突然断电程序挂了,难道又要从0开始?而且很多主题爬虫根本就没有结束的时候,一直处于运行状态。 2)单机单线程版存在明显的性能瓶颈,可通过改为多线程多进程提高效率。 3)其队列、去重集合都是程序变量,容量有限,存在溢出风险。 ...原创 2018-04-21 21:27:28 · 175 阅读 · 0 评论