国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python scrapy框架

這篇具有很好參考價值的文章主要介紹了python scrapy框架。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

scrapy概述

Scrapy,Python開發(fā)的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測和自動化測試

scrapy安裝

pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple

python scrapy框架,python爬蟲,python,scrapy,開發(fā)語言

最開始安裝了低版本 報錯builtins.AttributeError: module 'OpenSSL.SSL' has no attribute 'SSLv3_METHOD' 升級到最新版本2.10.0 沒有問題

scrapy使用

scrapy創(chuàng)建項目及結(jié)構(gòu)

創(chuàng)建項目

scrapy startproject 項目名稱

python scrapy框架,python爬蟲,python,scrapy,開發(fā)語言

scrapy自定義爬蟲類

創(chuàng)建爬蟲文件

scrapy genspider 爬蟲文件名稱 網(wǎng)頁地址

scrapy genspider MyTestSpider www.baidu.com

一般情況下不需要添加http協(xié)議, 因為start urls的值是根據(jù)allowed domains修改的 ,所以添加了http的話,那么start urls就需要我們手動去修改

import scrapy


class MytestSpider(scrapy.Spider):
    # 爬蟲的名字 用于運行爬蟲的時候 使用的值
    name = 'MyTestSpider'
    # 允許訪問的域名
    allowed_domains = ['www.baidu.com']
    # 起始的ur]地址 指的是第一次要訪問的域名
    start_urls = ['http://www.baidu.com/']

    def parse(self, response):
        pass

?scrapy response的屬性和方法

response.text? ? ? ?獲取的是響應的字符串

response.body? ? ?獲取的是二進制數(shù)據(jù)

response.xpath? ? 可以直接是xpath方法來解析response中的內(nèi)容

response.extract? 提取seletor對象的data屬性值

response.extract_first?提取seletor列表的第一個值

scrapy啟動爬蟲程序

scrapy crawl? 爬蟲名稱

scrapy crawl MyTestSpider

python scrapy框架,python爬蟲,python,scrapy,開發(fā)語言

scrapy原理

1、引擎向spiders要url

2、引擎學將要爬取的url給調(diào)度器

3、調(diào)度器會將url生成請求對象放到指定的隊列中,從隊列中發(fā)起一個請求

4、引擎將請求交給下載器進行處理

5、下載器發(fā)送請求獲取互聯(lián)網(wǎng)數(shù)據(jù)

6、將數(shù)據(jù)返回給下載器

7、下載器將數(shù)據(jù)返回給引擎

8、引擎將數(shù)據(jù)給spiders

9、spiders解析數(shù)據(jù),交給引擎,如果發(fā)起第二次請求,會再次交給調(diào)度器

10、引擎將數(shù)據(jù)交給管道

scrapy爬蟲案例

創(chuàng)建項目

scrapy startproject movie

創(chuàng)建spider

scrapy genspider mv https://www.dytt8.net/html/gndy/china/index.html
import scrapy


class MvSpider(scrapy.Spider):
    name = "mv"
    allowed_domains = ["www.dytt8.net"]
    start_urls = ["https://www.dytt8.net/html/gndy/china/index.html"]

    def parse(self, response):
        pass

items.py

# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html

import scrapy


class MovieItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    name = scrapy.Field()
    src = scrapy.Field()

編寫管道?

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html


# useful for handling different item types with a single interface
from itemadapter import ItemAdapter


class MoviePipeline:
    # 執(zhí)行之前執(zhí)行
    def open_spider(self, spider):
        self.fp = open('movie.json','w',encoding='utf-8')

    def process_item(self, item, spider):
        self.fp.write(str(item))
        return item

    # 執(zhí)行之后執(zhí)行
    def close_spider(self,spider):
        self.fp.close()

settings.py開啟管道

BOT_NAME = "movie"

SPIDER_MODULES = ["movie.spiders"]
NEWSPIDER_MODULE = "movie.spiders"


ROBOTSTXT_OBEY = True

ITEM_PIPELINES = {
   "movie.pipelines.MoviePipeline": 300,
}

REQUEST_FINGERPRINTER_IMPLEMENTATION = "2.7"
TWISTED_REACTOR = "twisted.internet.asyncioreactor.AsyncioSelectorReactor"
FEED_EXPORT_ENCODING = "utf-8"

編寫爬蟲程序

import scrapy
from movie.items import MovieItem

class MvSpider(scrapy.Spider):
    name = "mv"
    allowed_domains = ["www.dytt8.net"]
    start_urls = ["https://www.dytt8.net/html/gndy/china/index.html"]

    def parse(self, response):
        a_list = response.xpath('//div[@class="co_content8"]//td[2]//a[2]')

        for a in a_list:
            name = a.xpath('./text()').extract_first()
            href = a.xpath('./@href').extract_first()

            #第二頁的地址是
            url = 'https://www.dytt8.net' + href

            # 對第二頁的鏈接發(fā)起訪問
            yield scrapy.Request(url=url, callback=self.parse_second,meta={'name':name})

    def parse_second(self,response):
        src = response.xpath('//div[@id="Zoom"]//img/@src').extract_first()
        # 接受到請求的那個meta參數(shù)的值
        name = response.meta['name']

        movie = MovieItem(src=src, name=name)
        # 返回給管道
        yield movie

運行并查看結(jié)果

進入spider目錄下,執(zhí)行?scrapy crawl mv

python scrapy框架,python爬蟲,python,scrapy,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-683194.html

到了這里,關于python scrapy框架的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Scrapy:Python中強大的網(wǎng)絡爬蟲框架

    Scrapy:Python中強大的網(wǎng)絡爬蟲框架

    在當今信息爆炸的時代,從互聯(lián)網(wǎng)上獲取數(shù)據(jù)已經(jīng)成為許多應用程序的核心需求。Scrapy是一款基于Python的強大網(wǎng)絡爬蟲框架,它提供了一種靈活且高效的方式來提取、處理和存儲互聯(lián)網(wǎng)上的數(shù)據(jù)。本文將介紹Scrapy的主要特性和優(yōu)勢,以及如何使用它來構(gòu)建強大的網(wǎng)絡爬蟲。

    2024年02月19日
    瀏覽(23)
  • Python爬蟲之Scrapy框架系列(23)——分布式爬蟲scrapy_redis淺實戰(zhàn)【XXTop250部分爬取】

    先用單獨一個項目來使用scrapy_redis,講解一些重要點!

    2024年02月16日
    瀏覽(24)
  • Python爬蟲之Scrapy框架系列(21)——重寫媒體管道類實現(xiàn)保存圖片名字自定義及多頁爬取

    spider文件中要拿到圖片列表并yield item; item里需要定義特殊的字段名:image_urls=scrapy.Field(); settings里設置IMAGES_STORE存儲路徑,如果路徑不存在,系統(tǒng)會幫助我們創(chuàng)建; 使用默認管道則在s

    2024年02月10日
    瀏覽(94)
  • 【Python爬蟲開發(fā)基礎?】Scrapy架構(gòu)(組件介紹、架構(gòu)組成和工作原理)

    【Python爬蟲開發(fā)基礎?】Scrapy架構(gòu)(組件介紹、架構(gòu)組成和工作原理)

    ?? 個人主頁 :為夢而生~ 關注我一起學習吧! ?? 專欄 :python網(wǎng)絡爬蟲從基礎到實戰(zhàn) 歡迎訂閱!后面的內(nèi)容會越來越有意思~ ?? 往期推薦 : ??前面比較重要的 基礎內(nèi)容 : 【Python爬蟲開發(fā)基礎⑧】XPath庫及其基本用法 【Python爬蟲開發(fā)基礎⑨】jsonpath和BeautifulSoup庫概述及

    2024年02月17日
    瀏覽(22)
  • 《零基礎入門學習Python》第063講:論一只爬蟲的自我修養(yǎng)11:Scrapy框架之初窺門徑

    《零基礎入門學習Python》第063講:論一只爬蟲的自我修養(yǎng)11:Scrapy框架之初窺門徑

    上一節(jié)課我們好不容易裝好了?Scrapy,今天我們就來學習如何用好它,有些同學可能會有些疑惑,既然我們懂得了Python編寫爬蟲的技巧,那要這個所謂的爬蟲框架又有什么用呢?其實啊,你懂得Python寫爬蟲的代碼,好比你懂武功,會打架,但行軍打仗你不行,畢竟敵人是千軍

    2024年02月16日
    瀏覽(65)
  • 爬蟲---scrapy爬蟲框架(詳細+實戰(zhàn))

    爬蟲---scrapy爬蟲框架(詳細+實戰(zhàn))

    ? 活動地址:CSDN21天學習挑戰(zhàn)賽 1、基本功能 Scrapy 是一個適用爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)的應用程序框架,它可以應用在廣泛領域:Scrapy 常應用在包括數(shù)據(jù)挖掘,信息處理或存儲歷史數(shù)據(jù)等一系列的程序中。通常我們可以很簡單的通過 Scrapy 框架實現(xiàn)一個爬蟲,抓取指

    2023年04月22日
    瀏覽(20)
  • 爬蟲:Scrapy熱門爬蟲框架介紹

    結(jié)合自身經(jīng)驗和內(nèi)部資料總結(jié)的Python教程,每天3-5章,最短1個月就能全方位的完成Python的學習并進行實戰(zhàn)開發(fā),學完了定能成為大佬!加油吧!卷起來! 全部文章請訪問專欄:《Python全棧教程(0基礎)》 再推薦一下最近熱更的:《大廠測試高頻面試題詳解》 該專欄對近年

    2024年02月13日
    瀏覽(23)
  • 爬蟲(四):Scrapy熱門爬蟲框架介紹

    結(jié)合自身經(jīng)驗和內(nèi)部資料總結(jié)的Python教程,每天3-5章,最短1個月就能全方位的完成Python的學習并進行實戰(zhàn)開發(fā),學完了定能成為大佬!加油吧!卷起來! 全部文章請訪問專欄:《Python全棧教程(0基礎)》 再推薦一下最近熱更的:《大廠測試高頻面試題詳解》 該專欄對近年

    2024年02月11日
    瀏覽(21)
  • 爬蟲框架scrapy基本原理

    爬蟲框架scrapy基本原理

    scrapy是python的爬蟲框架,類似于django(python的web框架)。 安裝: Mac、Linux 執(zhí)行 pip3 install scrapy ,不存在任何問題 Windows 執(zhí)行 pip3 install scrapy ,如果安裝失敗,執(zhí)行下面步驟: (1)安裝wheel(為支持通過文件安裝軟件): pip3 install wheel (wheel官網(wǎng)) (2)安裝lxml: pip3 insta

    2024年02月15日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包