Ubuntu16.04下Scrapy环境的搭建

一、Scrapy简介与部署环境

   

       Scrapy是一个为了爬取网站数据,提取结构性数据而编写的第三方爬虫框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
       最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试

       本次环境搭建基于Ubuntu 16.04 TLS x64系统,python 2.7.12


二、安装scrpay框架

 主要基于pip  进行安装  pip没有安装的先安装pip,可参考这里http://dyc2005.blog.51cto.com/270872/1940870 就不再详述了。

安装scrapy

1
2
3
#sudo apt-get install libssl-dev    #依赖组件
#pip install pyopenssl --upgrade
pip  install  scrapy -i  http: //pypi .douban.com   #用国内源安装
1
安装完成查看版本如下:

e34effd746ac84df9cfafa352c129843.png

说明scrapy 1.4.0已经安装完成。


三、一个基础的scrapy项目应用

基于scrapy爬取糗事百科的糗图源文件,并分析出图片地址。

 1、切换目录到家目录下创建TestSpider

#scrapy startproject TestSpider

如图:

653c89581b2f141031327bcec3052682.png使用pycharm打开TestSpider

2、目录结构与说明:

目录结构如图:

cfaafa76c894720736ec978ae3ef45a2.png

结构说明:

        TestSpider                      项目的外壳

            TestSpider                  项目目录

                 Spiders                爬虫编写目录

                       __init__.py      包文件

                  __init__.py            包文件

                       item.py           数据模型文件

                        middlewares.py    中间件文件 proxy 代理ip

                        pipelines.py      数据输出管道文件

                        settings.py        项目的配置文件

             scrapy.cfg  scapy            的配置文件

3、爬取糗事百科的糗图

     确定爬取的内容:

        https://www.qiushibaike.com/

        https://www.qiushibaike.com/pic/

4、 修改

settings.py文件去掉注释加上如下内容,如图:

74151b91f922dc2fbc1a4c8c24c32bf3.png

User-Agent:就是你访问糗事百科时的请求头内容。复制到这里。


5、确定数据模型

配置item.py文件如图:

3d465d5fbe209fd84b7e149bd2510850.png-wh_


其中img定义爬到到的图片字段

lable是图片的标题字段


6、爬虫代码

到spiders目录创建qiushiSpider.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#coding:utf-8
import  scrapy
class  QiuShiScrapy(scrapy.spiders.Spider):
     name  =  "qiushi_img"    #爬虫的标识
     allowed_domains  =  [ "https://www.qiushibaike.com" ]
     start_urls  =  [ "https://www.qiushibaike.com/pic/" ]    #开始爬取的链接
 
     """
     ##1,简单保存爬取的源文件
     def parse(self,response):
     #当服务器进行响应的时候,首先返回到这里scrapy就会调用这个方法,并把响应的内容传递给第一个参数即response
         with open("1.txt","w") as f:
             f.write(response.body)       #爬取的结果写到1.txt
             
   """          
             
             
     ###2,获取并提取图片url
     def  parse( self , response):
         img_list  =  response.xpath( "//img" )
         with  open ( "1.txt" "w" ) as f:
             for  img  in  img_list:
                # f.write(img.extract().encode("utf-8") + "\n")
                 src  =  img.xpath( "@src" )
                 content  =  src.extract()
                 if  content:
                     f.write(content[ 0 ].encode( "utf-8" +  "\n" )


切换到命令行

san@yongc-dong:~/TestSpider$ scrapy list
qiushi_img


此时会看到上面写的爬虫标识名 qiushi_img

命令行下执行爬虫

san@yongc-dong:~/TestSpider$ scrapy crawl qiushi_img

结果类似如下图:

97d3029d663ab186e595e670950f1071.png-wh_

此时生成1.txt内容类似:

1
2
3
4
5
6
7
8
9
/ / pic.qiushibaike.com / system / avtnew / 1240 / 12405295 / medium / 20170630013041.JPEG
/ / pic.qiushibaike.com / system / pictures / 11968 / 119682883 / medium / app119682883.jpg
/ / pic.qiushibaike.com / system / avtnew / 3114 / 31145101 / medium / 20170916180203.JPEG
/ / pic.qiushibaike.com / system / pictures / 11968 / 119682882 / medium / app119682882.jpg
/ / pic.qiushibaike.com / system / avtnew / 3114 / 31145101 / medium / 20170916180203.JPEG
/ / pic.qiushibaike.com / system / pictures / 11968 / 119682878 / medium / app119682878.jpg
/ / pic.qiushibaike.com / system / avtnew / 3440 / 34405509 / medium / nopic.jpg
/ / pic.qiushibaike.com / system / pictures / 11968 / 119682886 / medium / app119682886.jpg
                 .....省略部分

本文只是抛砖引玉的简单介绍一个基本的爬虫过程。

都是基于命令行下操作,不是很方便。能否添加到pycharm中调式?


四、添加加scrapy调式到pycharm中

在TestSpider项目外层目录创建run.py内容如下:

1
2
3
#coding:utf-8
from  scrapy  import  cmdline
cmdline.execute( "scrapy crawl qiushi_img" .split())

点菜单栏中的"run" --> "Edit Configurations" 如图:

151888a98a0e99a75e91d97593d77999.png-wh_


89fd5ce6f169029099f1dd1726a4851b.png-wh_

点"+" -->"python"

如图:

ba5a4a8cc66d125037bfcc6489362a0b.png-wh_

Name:"Unamed"这是默认可不修改,Script:选择run.py所在目录和 Working directory:的项目目录

此是就像其他项目一样可以点运行即可在pycharm中运行spider

如图:

ed6f4afffb475e69c1411b7178a66815.png-wh_


一个scrapy框架的搭建和基本的爬虫与pycharm的环境部署完成。没有涉及到内容的存储。后续再说明。










本文转自 dyc2005 51CTO博客,原文链接:http://blog.51cto.com/dyc2005/1975479,如需转载请自行联系原作者
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值