LoginSignup
1
0

More than 5 years have passed since last update.

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

Posted at

はじめに

相変わらず

必要なんだか不要なんだかわからないものも入ってるんですが、
とりあえず動けば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楽しくなってきた!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0