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,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
IDE Ubuntu Java
百度搜索:蓝易云【Ubuntu快速搭建单步调试openjdk环境】
现在,你已经成功在Ubuntu上搭建了OpenJDK的单步调试环境,可以使用Eclipse IDE方便地进行Java程序的调试。请注意,Eclipse IDE提供了丰富的调试功能,使得调试过程更加高效和准确。
26 0
|
3月前
|
Ubuntu 网络协议 Linux
如何在无公网IP环境使用Windows远程桌面Ubuntu
如何在无公网IP环境使用Windows远程桌面Ubuntu
58 0
|
4月前
|
Ubuntu 测试技术 Linux
dpdk测试环境搭建(vmware下ubuntu环境参考上文汇总流程)
dpdk测试环境搭建(vmware下ubuntu环境参考上文汇总流程)
96 0
|
2月前
|
关系型数据库 MySQL Apache
Ubuntu22.04搭建LAMP环境
LAMP是一个用于构建Web应用程序的技术堆栈,你可以用它开发很多Web程序,比如WordPress。如果你想手工在VPS上搭建WordPress的话,那么你就需要先搭建LAMP环境。这篇文章讲解如何在Ubuntu22.04上搭建LAMP环境。首先,你需要先注册一台VPS服务器,然后登录VPS安装Apache服务、安装MySQL数据库,以及安装PHP。
48 0
Ubuntu22.04搭建LAMP环境
|
2月前
|
安全 应用服务中间件 开发工具
Ubuntu20安装docker并部署相关漏洞环境
Ubuntu20安装docker并部署相关漏洞环境
50 0
|
2月前
|
并行计算 Ubuntu 异构计算
百度搜索:蓝易云【Ubuntu环境下的cuda安装】
安装完成后,CUDA就成功安装在Ubuntu系统中了,你可以开始使用CUDA来进行GPU加速的计算。请注意,安装CUDA可能会影响系统的稳定性,建议在安装前备份重要数据,并确保对操作有足够的了解。如果不确定如何操作,建议寻求专业的帮助或咨询。
39 7
|
2月前
|
Ubuntu 应用服务中间件 nginx
ubuntu环境下 nginx 怎么配置文件
ubuntu环境下 nginx 怎么配置文件
|
3月前
|
Ubuntu Linux Windows
window10 虚拟机 linux ubuntu 环境下samba服务器配置
本文的目的是在windows 10 系统,使用samba服务实现 windows 10共享虚拟机ubuntu系统的文件。
44 0
|
4月前
|
Ubuntu C++ Docker
Ubuntu基于Docker快速配置GDAL的Python、C++环境
Ubuntu基于Docker快速配置GDAL的Python、C++环境
|
4月前
|
Ubuntu 网络协议 应用服务中间件
Ubuntu安装PHP和NGINX环境
PHP-FPM 是 PHP FastCGI Process Manager 的缩写,是 FastCGI 进程管理器。 PHP-FPM 是基于 master/worker 的多进程架构模式,与 nginx 的设计风格类似。master 进程主要负责 CGI、PHP 环境初始化,事件监听、子进程状态,worker 进程负责处理 PHP 请求。 FPM 的 master 通过共享内存获取 worker 进程的信息,包括 worker 进程当前状态、已处理请求数等,当 master 进程要杀掉一个 worker 进程时则通过发送信号的方式通知 worker 进程。
53 0