|
|
51CTO旗下网站
|
|
移动端

从零开始的Python爬虫速成指南,本文受众:没写过爬虫的萌新

用最短的时间写一个最简单的爬虫,可以抓一些简单的论坛、帖子、网页。本文受众是没写过爬虫的萌新,快来看看吧!

作者:烟火照长空o来源:今日头条|2018-06-12 13:12

 

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

引言

用最短的时间写一个最简单的爬虫,可以抓一些简单的论坛、帖子、网页。

入门

1.准备工作

  • 安装Python
  • 安装scrapy框架
  • 一个IDE或者可以用自带的

2.开始写爬虫

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

在spiders文件夹中创建一个python文件,比如miao.py,来作为爬虫的脚本。

代码如下:

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

3.运行一下

如果用命令行的话就这样:

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

解析

1.试试神奇的xpath

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

2.看看xpath的效果

在最上面加上引用:

from scrapy import Selector

把parse函数改成:

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

我们再次运行一下,你就可以看到输出“坛星际区”第一页所有帖子的标题和url了。

递归

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

完整的代码如下:

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

Pipelines——管道

现在是对已抓取、解析后的内容的处理,我们可以通过管道写入本地文件、数据库。

1.定义一个Item

在miao文件夹中创建一个items.py文件

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

这里我们定义了两个简单的class用来描述我们爬取的结果。

2. 处理方法

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

3.在爬虫中调用这个处理方法。

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

4.在配置文件里指定这个pipeline

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

可以这样配置多个pipeline:

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

Middleware——中间件

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

1.Middleware的配置

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

2.破网站查UA, 我要换UA

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

这里就是一个简单的随机更换UA的中间件,agents的内容可以自行扩充。

3.破网站封IP,我要用代理

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

从零开始的 Python 爬虫速成指南,本文受众:没写过爬虫的萌新

结束

看懂了吗 ?是不是超简单!

【编辑推荐】

  1. 干货|Python学习必须精通的几个模块
  2. 10行代码-利用Python做一个微信聊天机器人(简单易懂)
  3. 基于Python来开发一个QQ机器人,原来这么简单!
  4. Python相比Java,谁更胜一筹呢?
  5. 不懂Python,你将成为人工智能时代的新“文盲”
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

公钥基础设施PKI及其应用

公钥基础设施PKI(Public Key Infrastructure)是利用公钥概念和加密技术为网上通信提供的符合标准的一整套安全基础平台。公钥基础设施能为...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊