1. 程式人生 > >scrapy框架的入門使用

scrapy框架的入門使用

1.首先在命令列下執行mkvirtualenv <project name>用以新建專案的環境

2.在環境下下載scrapy框架執行,在環境下執行pip install scrapy,其中在win10環境下安裝會報錯,會出現Twisted安裝出錯的提示。因此要在安裝scrapy前安裝好相應版本的Twisted包點選下載。安裝好Twisted包後,再安裝scrapy就不會執行出錯了!

3.因為在pycharm中沒有新建scrapy專案的能力,所以要在你想建立專案的地方,在此環境下利用命令列建立新的專案,程式碼是scrapy startproject <專案名>

4.首先確定需要爬取得目標欄位,在item.py檔案中使用name = scrapy.Field()

5.在專案的spider資料夾下面新建爬蟲的py檔案,使用程式碼scrapy genspider <專案名> <目標網址>,此時就可以開始寫爬蟲的邏輯了,正則匹配/xpth等邏輯就在此.py檔案中書寫 注:爬蟲名不可以跟專案名字重複 6.如何執行爬蟲呢?用到這個命令scrapy crawl <爬蟲名>,執行時會報ImportError: No module named 'win32api',其實就是win32api這個包沒有,安裝即可,但是要這麼安裝pip install pywin32,完事後上面的scrapy crawl <爬蟲名>就可以運行了。

7.可是執行完之後又會報403的錯誤,具體如下

2018-09-19 20:36:23 [scrapy.spidermiddlewares.httperror] INFO: Ignoring response <403 https://movie.douban.com/top250>: HTTP status code is not handled or not allowed

,這個是豆瓣的反爬蟲機制的原因,這裡要對setting.py檔案中的USER_AGENT進行修改。點開網址豆瓣top250,f12然後找到user_agent複製到setting中。

8.另外一種執行爬蟲的方法就是在專案中建立.main

檔案

from scrapy.cmdline import execute

import sys
import os

sys.path.append(os.path.dirname(os.path.abspath(__file__)))
execute(["scrapy", "crawl", "douban_spider"])