成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

快速上手——我用scrapy寫爬蟲(一)

curlyCheng / 524人閱讀

摘要:寫在前面用寫爬蟲的人很多,的爬蟲框架也很多,諸如和,筆者還是筆記傾向于,本文就用寫一個小爬蟲。本文適用于有一定基礎的,并且對爬蟲有一定了解的開發(fā)者。

寫在前面

用python寫爬蟲的人很多,python的爬蟲框架也很多,諸如pyspider 和 scrapy,筆者還是筆記傾向于scrapy,本文就用python寫一個小爬蟲demo。
本文適用于有一定python基礎的,并且對爬蟲有一定了解的開發(fā)者。

安裝 Scrapy

檢查環(huán)境,python的版本為3.6.2,pip為9.0.1

F:	echleepython>python --version
Python 3.6.2

F:	echleepython>pip --version
pip 9.0.1 from d:program filespythonpython36-32libsite-packages (python 3.6)

安裝scrapy框架

F:	echleepython>pip install scrapy
Collecting scrapy
  Downloading Scrapy-1.4.0-py2.py3-none-any.whl (248kB)
    100% |████████████████████████████████| 256kB 188kB/s
    // 漫長的安裝過程
Successfully installed Twisted-17.9.0 scrapy-1.4.0

如果報錯:

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

請安裝Visual C++ 2015 Build Tools
http://landinghub.visualstudi...

安裝完成

F:	echleepython>scrapy version
Scrapy 1.4.0
創(chuàng)建項目
F:	echleepython>scrapy startproject scrapyDemo
New Scrapy project "scrapyDemo", using template directory "d:program filespythonpython36-32libsite-packagesscrapy	emplatesproject", created in:
    F:	echleepythonscrapyDemo

You can start your first spider with:
    cd scrapyDemo
    scrapy genspider example example.com

目錄結構

scrapyDemo/
    scrapy.cfg            # 部署配置文件

    scrapyDemo/           # python模塊
        __init__.py

        items.py          # 數(shù)據(jù)容器

        pipelines.py      # project pipelines file

        settings.py       # 配置文件

        spiders/          # Spider類定義了如何爬取某個(或某些)網(wǎng)站
            __init__.py

創(chuàng)建執(zhí)行爬取的類ImoocSpider在 scrapyDemo/spiders

# -*- coding: utf-8 -*-
import scrapy
from urllib import parse as urlparse

# 慕課網(wǎng)爬取
class ImoocSpider(scrapy.Spider):
    # spider的名字定義了Scrapy如何定位(并初始化)spider,所以其必須是唯一的
    name = "imooc"

    # URL列表
    start_urls = ["http://www.imooc.com/course/list"]
    #  域名不在列表中的URL不會被爬取。
    allowed_domains = ["www.imooc.com"]

    def parse(self, response):        
        learn_nodes = response.css("a.course-card")
        for learn_node in learn_nodes :
            learn_url = learn_node.css("::attr(href)").extract_first()
            yield scrapy.Request(url=urlparse.urljoin(response.url,learn_url),callback=self.parse_learn)
        
    def parse_learn(self, response):
        title = response.xpath("http://h2[@class="l"]/text()").extract_first()
        content = response.xpath("http://div[@class="course-brief"]/p/text()").extract_first()
        url = response.url
        print ("標題:" + title)
        print ("地址:" + url)
開始爬取
F:	echleepythonscrapyDemo>scrapy crawl imooc

如果出現(xiàn),則缺少win32api庫,選擇相應的版本

下載地址:https://sourceforge.net/proje...

import win32api
ModuleNotFoundError: No module named "win32api"
大功告成

看到如下輸出,就說明爬取成功啦

F:	echleepythonscrapyDemo>scrapy crawl imooc
2017-10-17 14:28:32 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: scrapyDemo)
……
2017-10-17 14:28:32 [scrapy.core.engine] INFO: Spider opened
2017-10-17 14:28:32 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2017-10-17 14:28:32 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2017-10-17 14:28:32 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: None)
2017-10-17 14:28:33 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: None)
2017-10-17 14:28:33 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:集成MultiDex項目實戰(zhàn)
地址:http://www.imooc.com/learn/876
2017-10-17 14:28:33 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:阿里D2前端技術論壇——2016初心
地址:http://www.imooc.com/learn/893
2017-10-17 14:28:33 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
2017-10-17 14:28:33 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:Hadoop進階
地址:http://www.imooc.com/learn/890
標題:Javascript實現(xiàn)二叉樹算法
地址:http://www.imooc.com/learn/888
2017-10-17 14:28:33 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:Fragment應用上
地址:http://www.imooc.com/learn/894
2017-10-17 14:28:34 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:PHP-面向?qū)ο?地址:http://www.imooc.com/learn/887
2017-10-17 14:28:34 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
2017-10-17 14:28:34 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
2017-10-17 14:28:34 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:Sketch的基礎實例應用
地址:http://www.imooc.com/learn/900
標題:ElasticSearch入門
地址:http://www.imooc.com/learn/889
標題:使用Google Guice實現(xiàn)依賴注入
地址:http://www.imooc.com/learn/901
2017-10-17 14:28:34 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:Docker入門
地址:http://www.imooc.com/learn/867
2017-10-17 14:28:34 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:Android圖表繪制之直方圖
地址:http://www.imooc.com/learn/878
2017-10-17 14:28:34 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:UI版式設計
地址:http://www.imooc.com/learn/892
2017-10-17 14:28:35 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
2017-10-17 14:28:35 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:RxJava與RxAndroid基礎入門
地址:http://www.imooc.com/learn/877
標題:iOS開發(fā)之Audio特輯
地址:http://www.imooc.com/learn/886
2017-10-17 14:28:35 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:基于Websocket的火拼俄羅斯(基礎)
地址:http://www.imooc.com/learn/861
2017-10-17 14:28:35 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
2017-10-17 14:28:35 [scrapy.core.engine] DEBUG: Crawled (200)  (referer: http://www.imooc.com/course/list)
標題:2017AWS 技術峰會——大數(shù)據(jù)技術專場
地址:http://www.imooc.com/learn/895
標題:基于websocket的火拼俄羅斯(單機版)
地址:http://www.imooc.com/learn/882

原文 https://www.tech1024.cn/origi...

保存數(shù)據(jù)到mysql數(shù)據(jù)庫 https://www.tech1024.cn/origi...

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40948.html

相關文章

  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • 保存數(shù)據(jù)到MySql數(shù)據(jù)庫——我用scrapy爬蟲(二)

    摘要:坦克大戰(zhàn)上簡介上的坦克大戰(zhàn)相信大家都玩過有逃學玩坦克的可以自己默默的扣一個了我們現(xiàn)在長大了,學習游戲開發(fā)了。 寫在前面 上一篇(https://www.tech1024.cn/origi... )說了如何創(chuàng)建項目,并爬去網(wǎng)站內(nèi)容,下面我們說一下如何保存爬去到的數(shù)據(jù) 開始爬取 創(chuàng)建Spider,上一篇我們已經(jīng)創(chuàng)建了ImoocSpider,我們做一下修改,可以連續(xù)下一頁爬取。scrapyD...

    Kross 評論0 收藏0
  • scrapy入門教程3:scrapy的shell命令

    摘要:用例運行爬蟲命令基本語法是否需要項目存在當然是不需要咯貌似這個命令是不依托一個項目而直接運行一個爬蟲的命令。用例我終于寫完了,喜歡的就收藏推薦一下吧,這樣我就會更有動力寫新的教程了,哇哈哈 0. 基本環(huán)境說明 本文截圖及運行環(huán)境均在Win8上實現(xiàn)(是的,我放假回家了,家里的機器是win8的沒有辦法),但基本步驟與win 7環(huán)境基本相同。(應該把~)ps:我后來換了臺win7的電腦,所...

    zhongmeizhi 評論0 收藏0
  • 從零開始爬蟲

    摘要:幾個朋友對爬蟲很感興趣,他們也都是開發(fā)人員,一個開發(fā)兩個開發(fā),都沒有過項目開發(fā)經(jīng)驗,正好其中一個最近要爬一個網(wǎng)店的產(chǎn)品信息,所以希望我能拿這網(wǎng)站當寫一個爬蟲來給他們參考學習。我們就在這個文件里開發(fā)爬蟲的相關邏輯。 幾個朋友對爬蟲很感興趣,他們也都是開發(fā)人員,一個PHP開發(fā)兩個JAVA開發(fā),都沒有過python項目開發(fā)經(jīng)驗,正好其中一個最近要爬一個網(wǎng)店的產(chǎn)品信息,所以希望我能拿這網(wǎng)站當d...

    wwq0327 評論0 收藏0
  • Python3網(wǎng)絡爬蟲實戰(zhàn)---10、爬蟲框架的安裝:PySpider、Scrapy

    摘要:所以如果對爬蟲有一定基礎,上手框架是一種好的選擇。缺少包,使用安裝即可缺少包,使用安裝即可上一篇文章網(wǎng)絡爬蟲實戰(zhàn)爬取相關庫的安裝的安裝下一篇文章網(wǎng)絡爬蟲實戰(zhàn)爬蟲框架的安裝 上一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)---9、APP爬取相關庫的安裝:Appium的安裝下一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)---11、爬蟲框架的安裝:ScrapySplash、ScrapyRedis 我們直接...

    張憲坤 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<