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

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

从零开始的 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 爬虫速成指南,本文受众:没写过爬虫的萌新

 

结束

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

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2018-08-20 08:39:24

编程语言Python网络爬虫

2024-03-01 19:53:37

PyBuilderPython开发

2018-05-09 19:29:49

Python爬虫scrapy

2024-05-17 17:29:00

CurdlingPython开发

2017-12-05 10:17:02

Python爬虫零基础

2024-06-07 08:56:43

HTTPPythonSelenium

2023-03-21 07:35:43

2020-08-28 11:00:16

Python爬虫命令

2011-04-29 10:46:32

iPhone开发入门iPhoneiOS

2015-11-17 16:11:07

Code Review

2019-01-18 12:39:45

云计算PaaS公有云

2018-04-18 07:01:59

Docker容器虚拟机

2020-07-02 15:32:23

Kubernetes容器架构

2020-02-11 16:49:24

React前端代码

2018-08-20 08:15:50

编程语言Go语言切片

2017-08-09 15:27:33

python爬虫开发工具

2018-09-14 17:16:22

云计算软件计算机网络

2010-05-26 17:35:08

配置Xcode SVN

2013-07-11 10:03:36

JavaScript框架

2018-04-16 16:31:56

前端开发从零开始
点赞
收藏

51CTO技术栈公众号