安基网 首页 编程 Python 查看内容

scrapy使用快速入门

2019-1-8 21:17| 投稿: xiaotiger |来自: 互联网


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: 首先你要具备以下能力:#有一定的python基础和编程思想,#具有一定的liunx系统管理基础#掌握基本数据库操作,增删改查等,#了解html,css,js相关方面的知识建议使用Pycharm开发工具,方便调试下面我们开始写爬虫程 ...

首先你要具备以下能力:

#有一定的python基础和编程思想,

#具有一定的liunx系统管理基础

#掌握基本数据库操作,增删改查等,

#了解html,css,js相关方面的知识

建议使用Pycharm开发工具,方便调试

下面我们开始写爬虫程序

1、创建一个scrapy项目

在D:\myprogram\python\demo目录下,打开命令行,输入以下命令,创建一个scrapy项目

scrapy startproject minespider

scrapy startproject是创建scrapy项目的固定格式,后面的minespider是你要创建的项目名称,可根据你的需求来取名,最好做到见名知意。

下面是项目创建成功后的截图

下面我们来看一下用命令行创建的项目目录结构

2、创建scrapy蜘蛛文件

在我们第一步创建的scrapy项目中,将要创建的蜘蛛文件放在spiders文件夹下,不要问问什么,固定格式

可以使用pycharm创建scrapy蜘蛛爬虫python文件,现在我们创建一个名为mine_spider.py的蜘蛛文件,创建方法如下所示:

文件创建成功后,我们就可以在这个蜘蛛文件中爬虫我们想要的网站内容了,目录结构如下所示:

注:编写蜘蛛文件需要遵守scrapy的规则

A:首先我们需要创建一个类,并继承scrapy的一个子类:scrapy.Spider 或者是其他蜘蛛类型;B:然后定义一个蜘蛛名,name=“” 后面我们运行的话需要用到;C:定义我们需要爬取的网址;D:继承scrapy的一个方法:start_requests(self),这个方法的作用就是通过上面定义的链接去爬取页面,简单理解就是下载页面。

下面是一个简单的例子,告诉大家scrapy爬虫的流程

(1)、定义链接;

(2)、通过链接爬取(下载)页面;

(3)、定义规则,然后提取数据;

import scrapy

class minespider(scrapy.Spider): #需要继承scrapy.Spider类

name = "myspider" # 定义蜘蛛名

def start_requests(self): # 由此方法通过下面链接爬取页面

# 定义爬取的链接

urls = [

http://lab.scrapyd.cn/page/1/,

http://lab.scrapyd.cn/page/2/,

]

for url in urls:

yield scrapy.Request(url=url, callback=self.parse) #爬取到的页面如何处理?提交给parse方法处理

def parse(self, response):

#在该方法中,可以提取start_requests已经爬取到的页面内容,可以用xpath、正则、或是css进行相应内容提取。

page = response.url.split("/")[-2] #根据上面的链接提取分页,如:/page/1/,提取到的就是:1

filename = myspider-%s.html % page #拼接文件名,如果是第一页,最终文件名便是:myspider-1.html

with open(filename, wb) as f:f.write(response.body) #将下载下来的页面存放到python文件中

3、运行myspider这个蜘蛛文件,命令如下:

scrapy crawl myspider

以上就是scrapy爬虫的具体操作流程,这个例子在有的机子上会报错,不过,这只是个告诉大家scrapy是如何进行网页爬取的demo,大家理解它的工作原理即可。



小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:https://mbd.baidu.com/newspage/data/landingsuper?context={

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

 最新
返回顶部