Debian8(jessie)でScrapyを動くようにし、エンジニアが垂涎しそうなスクレイピングをしてみる

はじめに

相変わらず

必要なんだか不要なんだかわからないものも入ってるんですが、
とりあえず動けばOKってスタンスでやってますので、
真似するときは火傷に気をつけてネ♥

Scrapyを使う

環境を作る

現状を確認

> python -V
Python 2.7.9
> python3 -V
Python 3.4.2

色々あるでしょうけど動けばOKなので、
PythonのVersionはデフォルトでやってみます。

前準備

では、便利なez_setupとpipをインストール

その前にpythonの開発に必要なものを入れます。
順番が逆だと、

Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-6I01ux/Twisted/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-Imo90a-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-6I01ux/Twisted/

みたいなエラーが出ちゃいます。
最初からPythonが入ってるのに必要なものがあると言うことは知らず、
エラーでちょっと混乱しました。(笑)

> apt -y install zlib1g-dev libssl-dev libreadline-dev libsqlite3-dev libbz2-dev libncurses5-dev libgdbm-dev liblzma-dev tk-dev zlibc

> wget https://bootstrap.pypa.io/ez_setup.py -O - | python
> easy_install pip
> pip install pyopenssl --upgrade

Scrapyをインストール

> pip install scrapy

これで準備はおわり。たぶん。

チュートリアル通りで実行

まずはチュートリアル通り

myspider.py
import scrapy

class BlogSpider(scrapy.Spider):
    name = 'blogspider'
    start_urls = ['https://blog.scrapinghub.com']

    def parse(self, response):
        for title in response.css('h2.entry-title'):
            yield {'title': title.css('a ::text').extract_first()}

        for next_page in response.css('div.prev-post > a'):
            yield response.follow(next_page, self.parse)

実行

> scrapy runspider myspider.py

ERRORが下記の場合は、コマンド pip install pyopenssl --upgradeが実行されてないっぽいです。

'module' object has no attribute 'OP_SINGLE_ECDH_USE'

エンジニア垂涎のアノサイトをスクレイピング

アノサイトって、会社員は職場で見ると目をつけられそうなやつです。

・・・そう、

みんなだいすきな・・・・

あれデス。

それはまた次回。

気になったらフォローでもしておいてください(笑)

あとがき

Python楽しくなってきた!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.