scrapy框架爬取豆瓣電影的資料

2021-10-03 04:33:03 字數 2242 閱讀 3006

1.什麼是scrapy框架?

scrapy是乙個為了爬取**資料,提取結構性資料而編寫的應用框架。 其可以應用在資料探勘,資訊處理或儲存歷史資料等一系列的程式中。

其最初是為了頁面抓取 (更確切來說, 網路抓取 )所設計的, 也可以應用在獲取api所返回的資料(例如 amazon associates web services ) 或者通用的網路爬蟲。scrapy用途廣泛,可以用於資料探勘、監測和自動化測試。

scrapy元件:scrapy框架爬取豆瓣電影的資料流程:

1.新建專案:

使用命令:scrapy startproject douban生成專案

使用命令:scrapy genspider douban_spider movie.douban.com/top250

可新建main.py用於執行爬蟲,也可直接用命令執行:scrapy crawl douban_spider

2.在items.py中編寫所需用到的資料結構

3.編寫爬蟲douban_spider,**如下:

import scrapy

from douban.items import doubanitem

class doubanspiderspider(scrapy.spider):

name = 'douban_spider'

allowed_domains = ['movie.douban.com']

start_urls = ['']

#預設的解析方法

def parse(self, response):

#迴圈電影的條目

movie_list=response.xpath("//div[@class='article']//ol[@class='grid_view']/li")

for item in movie_list:

#item檔案導進來

douban_item=doubanitem()

#寫詳細的xpath,進行資料的解析

douban_item['serial_number']=item.xpath(".//div[@class='item']//em/text()").extract_first()

douban_item['movie_name'] = item.xpath(".//div[@class='hd']/a/span[1]/text()").extract_first()

content=item.xpath(".//div[@class='bd']/p[1]/text()").extract()

#多行資料的資料處理

for i_content in content:

contents="".join(i_content.split())

douban_item['introduce']=contents

douban_item['star']=item.xpath(".//span[@class='rating_num']/text()").extract_first()

douban_item['evaluate'] = item.xpath(".//span[4]/text()").extract_first()

douban_item['describe'] = item.xpath(".//p[@class='quote']/span/text()").extract_first()

#你需要將資料yield到piplines裡面去

yield douban_item

next_link=response.xpath("//span[@class='next']/a/@href").extract()

if next_link:

next_link=next_link[0]

yield scrapy.request(""+next_link,callback=self.parse)

scrapy框架爬取豆瓣讀書(1)

scrapy,python開發的乙個快速 高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的資料。scrapy用途廣泛,可以用於資料探勘 監測和自動化測試。scrapy吸引人的地方在於它是乙個框架,任何人都可以根據需求方便的修改。它也提供了多種型別爬蟲的基類,如basespi...

scrapy爬取豆瓣「選電影」各分類中的電影資訊

分類中電影的詳細鏈結可在ajax返回的json中檢視。spider.py coding utf 8 import scrapy,json from urllib.parse import quote from sec douban.items import secdoubanitem class s...

豆瓣熱門電影爬取

import requests import json import csv defgetonepagedata page start url headers params response requests.get start url,headers headers,params params i...