1. 程式人生 > >Ubuntu16.04下Scrapy環境的搭建

Ubuntu16.04下Scrapy環境的搭建

scrapy環境部署 pycharm配置運行spider

一、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

#sudo apt-get install libssl-dev    #依賴組件
#pip install pyopenssl --upgrade
pip install scrapy -i  http://pypi.douban.com  #用國內源安裝
安裝完成查看版本如下:

技術分享

說明scrapy 1.4.0已經安裝完成。


三、一個基礎的scrapy項目應用

基於scrapy爬取糗事百科的糗圖源文件,並分析出圖片地址。

1、切換目錄到家目錄下創建TestSpider

#scrapy startproject TestSpider

如圖:

技術分享使用pycharm打開TestSpider

2、目錄結構與說明:

目錄結構如圖:

技術分享

結構說明:

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文件去掉註釋加上如下內容,如圖:

技術分享

User-Agent:就是你訪問糗事百科時的請求頭內容。復制到這裏。


5、確定數據模型

配置item.py文件如圖:

技術分享


其中img定義爬到到的圖片字段

lable是圖片的標題字段


6、爬蟲代碼

到spiders目錄創建qiushiSpider.py

#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

結果類似如下圖:

技術分享

此時生成1.txt內容類似:

//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內容如下:

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

點菜單欄中的"run" --> "Edit Configurations" 如圖:

技術分享


技術分享

點"+" -->"python"

如圖:

技術分享

Name:"Unamed"這是默認可不修改,Script:選擇run.py所在目錄和 Working directory:的項目目錄

此是就像其他項目一樣可以點運行即可在pycharm中運行spider

如圖:

技術分享


一個scrapy框架的搭建和基本的爬蟲與pycharm的環境部署完成。沒有涉及到內容的存儲。後續再說明。

本文出自 “學無止境,學以致用” 博客,請務必保留此出處http://dyc2005.blog.51cto.com/270872/1975479

Ubuntu16.04下Scrapy環境的搭建