如何入门 Python 爬虫

\u5982\u4f55\u5165\u95e8 Python \u722c\u866b

\u201c\u5165\u95e8\u201d\u662f\u826f\u597d\u7684\u52a8\u673a\uff0c\u4f46\u662f\u53ef\u80fd\u4f5c\u7528\u7f13\u6162\u3002\u5982\u679c\u4f60\u624b\u91cc\u6216\u8005\u8111\u5b50\u91cc\u6709\u4e00\u4e2a\u9879\u76ee\uff0c\u90a3\u4e48\u5b9e\u8df5\u8d77\u6765\u4f60\u4f1a\u88ab\u76ee\u6807\u9a71\u52a8\uff0c\u800c\u4e0d\u4f1a\u50cf\u5b66\u4e60\u6a21\u5757\u4e00\u6837\u6162\u6162\u5b66\u4e60\u3002

\u53e6\u5916\u5982\u679c\u8bf4\u77e5\u8bc6\u4f53\u7cfb\u91cc\u7684\u6bcf\u4e00\u4e2a\u77e5\u8bc6\u70b9\u662f\u56fe\u91cc\u7684\u70b9\uff0c\u4f9d\u8d56\u5173\u7cfb\u662f\u8fb9\u7684\u8bdd\uff0c\u90a3\u4e48\u8fd9\u4e2a\u56fe\u4e00\u5b9a\u4e0d\u662f\u4e00\u4e2a\u6709\u5411\u65e0\u73af\u56fe\u3002\u56e0\u4e3a\u5b66\u4e60A\u7684\u7ecf\u9a8c\u53ef\u4ee5\u5e2e\u52a9\u4f60\u5b66\u4e60B\u3002\u56e0\u6b64\uff0c\u4f60\u4e0d\u9700\u8981\u5b66\u4e60\u600e\u4e48\u6837\u201c\u5165\u95e8\u201d\uff0c\u56e0\u4e3a\u8fd9\u6837\u7684\u201c\u5165\u95e8\u201d\u70b9\u6839\u672c\u4e0d\u5b58\u5728\uff01\u4f60\u9700\u8981\u5b66\u4e60\u7684\u662f\u600e\u4e48\u6837\u505a\u4e00\u4e2a\u6bd4\u8f83\u5927\u7684\u4e1c\u897f\uff0c\u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d\uff0c\u4f60\u4f1a\u5f88\u5feb\u5730\u5b66\u4f1a\u9700\u8981\u5b66\u4f1a\u7684\u4e1c\u897f\u7684\u3002\u5f53\u7136\uff0c\u4f60\u53ef\u4ee5\u4e89\u8bba\u8bf4\u9700\u8981\u5148\u61c2python\uff0c\u4e0d\u7136\u600e\u4e48\u5b66\u4f1apython\u505a\u722c\u866b\u5462\uff1f\u4f46\u662f\u4e8b\u5b9e\u4e0a\uff0c\u4f60\u5b8c\u5168\u53ef\u4ee5\u5728\u505a\u8fd9\u4e2a\u722c\u866b\u7684\u8fc7\u7a0b\u4e2d\u5b66\u4e60python :D

\u770b\u5230\u524d\u9762\u5f88\u591a\u7b54\u6848\u90fd\u8bb2\u7684\u201c\u672f\u201d\u2014\u2014\u7528\u4ec0\u4e48\u8f6f\u4ef6\u600e\u4e48\u722c\uff0c\u90a3\u6211\u5c31\u8bb2\u8bb2\u201c\u9053\u201d\u548c\u201c\u672f\u201d\u5427\u2014\u2014\u722c\u866b\u600e\u4e48\u5de5\u4f5c\u4ee5\u53ca\u600e\u4e48\u5728python\u5b9e\u73b0\u3002

\u5148\u957f\u8bdd\u77ed\u8bf4summarize\u4e00\u4e0b\uff1a
\u4f60\u9700\u8981\u5b66\u4e60

\u57fa\u672c\u7684\u722c\u866b\u5de5\u4f5c\u539f\u7406
\u57fa\u672c\u7684http\u6293\u53d6\u5de5\u5177\uff0cscrapy
Bloom Filter: Bloom Filters by Example
\u5982\u679c\u9700\u8981\u5927\u89c4\u6a21\u7f51\u9875\u6293\u53d6\uff0c\u4f60\u9700\u8981\u5b66\u4e60\u5206\u5e03\u5f0f\u722c\u866b\u7684\u6982\u5ff5\u3002\u5176\u5b9e\u6ca1\u90a3\u4e48\u7384\u4e4e\uff0c\u4f60\u53ea\u8981\u5b66\u4f1a\u600e\u6837\u7ef4\u62a4\u4e00\u4e2a\u6240\u6709\u96c6\u7fa4\u673a\u5668\u80fd\u591f\u6709\u6548\u5206\u4eab\u7684\u5206\u5e03\u5f0f\u961f\u5217\u5c31\u597d\u3002\u6700\u7b80\u5355\u7684\u5b9e\u73b0\u662fpython-rq:https://github.com/nvie/rq
rq\u548cScrapy\u7684\u7ed3\u5408\uff1adarkrho/scrapy-redis \u00b7 GitHub
\u540e\u7eed\u5904\u7406\uff0c\u7f51\u9875\u6790\u53d6(grangier/python-goose \u00b7 GitHub)\uff0c\u5b58\u50a8(Mongodb)

# -*- coding: utf-8 -*-import reimport urllib2 from collections import deque queue = deque()visited = set()url = 'http://pic.yesky.com/' # \u5165\u53e3\u9875\u9762, \u53ef\u4ee5\u6362\u6210\u522b\u7684req_header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko'}req_timeout = 20 queue.append(url)cnt = 0while queue: url = queue.popleft() # \u961f\u9996\u5143\u7d20\u51fa\u961f visited |= {url} # \u6807\u8bb0\u4e3a\u5df2\u8bbf\u95ee print(u'\u5df2\u7ecf\u6293\u53d6: ' + str(cnt) + u' \u6b63\u5728\u6293\u53d6 ' + x)

 从爬虫必要的几个基本需求来讲:
  1.抓取
  py的urllib不一定去用,但是要学,如果还没用过的话。
  比较好的替代品有requests等第三方更人性化、成熟的库,如果pyer不了解各种库,那就白学了。
  抓取最基本就是拉网页回来。
  如果深入做下去,会发现要面对不同的网页要求,比如有认证的,不同文件格式、编码处理,各种奇怪的url合规化处理、重复抓取问题、cookies跟随问题、多线程多进程抓取、多节点抓取、抓取调度、资源压缩等一系列问题。
  所以第一步就是拉网页回来,慢慢会发现各种问题待优化。
  2.存储
  抓回来一般会用一定策略存下来,而不是直接分析,个人觉得更好的架构应该是把分析和抓取分离,更加松散,每个环节出了问题能够隔离另外一个环节可能出现的问题,好排查也好更新发布。
  那么存文件系统、SQLorNOSQL数据库、内存数据库,如何去存就是这个环节的重点。
  可以选择存文件系统开始,然后以一定规则命名。
  3.分析
  对网页进行文本分析,提取链接也好,提取正文也好,总之看的需求,但是一定要做的就是分析链接了。
  可以用认为最快最优的办法,比如正则表达式。
  然后将分析后的结果应用与其他环节:)
  4.展示
  要是做了一堆事情,一点展示输出都没有,如何展现价值。
  所以找到好的展示组件,去show出肌肉也是关键。
  如果为了做个站去写爬虫,抑或要分析某个东西的数据,都不要忘了这个环节,更好地把结果展示出来给别人感受。

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网