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

python-scrapy框架(四)settings.py文件的用法詳解實例

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

settings.py文件是Scrapy框架中用來配置爬取相關(guān)設(shè)置的文件。在Scrapy中,我們可以通過修改settings.py文件來自定義爬蟲的行為,包括設(shè)置全局變量、配置下載延遲、配置ua池、設(shè)置代理以及其他爬蟲相關(guān)的配置項。下面是對settings.py文件用法的詳細(xì)解釋和一個實例:

1.設(shè)置全局變量
在settings.py文件中,我們可以定義一些全局變量,這些變量在整個爬蟲過程中都可以使用。例如,我們可以定義一個USER_AGENT變量,用來設(shè)置請求的User-Agent頭信息:
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
2.配置下載延遲
在settings.py文件中,可以通過設(shè)置DOWNLOAD_DELAY參數(shù)來配置下載延遲,以控制爬取速度。DOWNLOAD_DELAY的單位是秒,可以設(shè)置為1或更大的值。例如:
DOWNLOAD_DELAY = 1
3.配置UA池
為了防止網(wǎng)站對爬蟲的識別,我們可以設(shè)置一個User-Agent池,讓每個請求隨機(jī)選擇一個User-Agent進(jìn)行發(fā)送。可以在settings.py文件中設(shè)置USER_AGENT_POOL,如下所示:
USER_AGENT_POOL = [
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0',
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebK...
]

然后,在Spider中隨機(jī)選擇一個User-Agent進(jìn)行請求發(fā)送:

from scrapy import Spider
from scrapy.utils.project import get_project_settings
from scrapy.utils.httpobj import urlparse_cached

class MySpider(Spider):
    name = 'my_spider'
    
    def __init__(self, name=None, **kwargs):
        self.settings = get_project_settings()
    
    def start_requests(self):
        # ...
        yield scrapy.Request(url, headers={'User-Agent': self.settings['USER_AGENT_POOL'][random.randint(0, len(self.settings['USER_AGENT_POOL'])-1)]})
4.設(shè)置代理
如果需要通過代理來進(jìn)行爬取,可以在settings.py文件中設(shè)置PROXIES參數(shù)。例如:
PROXIES = [
    'http://proxy1.example.com:8888',
    'http://proxy2.example.com:8888',
    'http://proxy3.example.com:8888',
]

然后,在Spider中隨機(jī)選擇一個代理進(jìn)行請求發(fā)送:

from scrapy import Spider
from scrapy.utils.project import get_project_settings
from scrapy.utils.httpobj import urlparse_cached

class MySpider(Spider):
    name = 'my_spider'
    
    def __init__(self, name=None, **kwargs):
        self.settings = get_project_settings()
    
    def start_requests(self):
        # ...
        yield scrapy.Request(url, meta={'proxy': self.settings['PROXIES'][random.randint(0, len(self.settings['PROXIES'])-1)]})
5.其他爬蟲相關(guān)配置項
在settings.py文件中,還可以設(shè)置其他的爬蟲相關(guān)配置項,如日志級別、保存路徑、爬取深度等。以下是一些常見的配置項:
# 日志級別
LOG_LEVEL = 'INFO'

# 爬蟲名稱
BOT_NAME = 'my_bot'

# 爬取深度限制
DEPTH_LIMIT = 3

# 是否遵循robots.txt
ROBOTSTXT_OBEY = True

# 是否啟用緩存
HTTPCACHE_ENABLED = True

# 緩存過期時間
HTTPCACHE_EXPIRATION_SECS = 0

# 緩存存儲路徑
HTTPCACHE_DIR = 'httpcache'

# 緩存存儲方式
HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'

這些只是settings.py文件中一些常見的配置項,你可以根據(jù)需要添加或修改更多的配置項。以下是更多可能用到的配置項:

6.開啟并配置自定義的擴(kuò)展
Scrapy框架允許開發(fā)者編寫自定義的擴(kuò)展來增強(qiáng)爬蟲的功能。在settings.py文件中,可以通過EXTENSIONS參數(shù)來啟用和配置這些擴(kuò)展。例如,啟用并配置自定義的擴(kuò)展MyExtension:
EXTENSIONS = {
    'myextension.MyExtension': 500,
}
7.配置重試次數(shù)
在爬蟲過程中,可能會發(fā)生請求失敗的情況,可以通過配置RETRY_TIMES和RETRY_HTTP_CODES參數(shù)來控制自動重試的次數(shù)和HTTP響應(yīng)狀態(tài)碼。例如,設(shè)置最大重試次數(shù)為3次,僅在遇到500和502的情況下進(jìn)行重試:
RETRY_TIMES = 3
RETRY_HTTP_CODES = [500, 502]
8.配置并發(fā)請求數(shù)量
通過并發(fā)發(fā)送請求可以提高爬取效率,可以通過配置CONCURRENT_REQUESTS參數(shù)來設(shè)置同時發(fā)送的請求數(shù)量。例如,設(shè)置同時發(fā)送10個請求:
CONCURRENT_REQUESTS = 10
9.配置下載器中間件和爬蟲中間件
Scrapy框架提供了下載器中間件和爬蟲中間件,用于在請求和響應(yīng)的處理過程中進(jìn)行自定義的操作??梢酝ㄟ^配置DOWNLOADER_MIDDLEWARES和SPIDER_MIDDLEWARES參數(shù)來啟用和配置這些中間件。例如,啟用并配置自定義的下載器中間件MyDownloaderMiddleware和爬蟲中間件MySpiderMiddleware:
DOWNLOADER_MIDDLEWARES = {
    'myproject.middlewares.MyDownloaderMiddleware': 543,
}
SPIDER_MIDDLEWARES = {
    'myproject.middlewares.MySpiderMiddleware': 543,
}
10.配置請求頭信息
可以通過設(shè)置DEFAULT_REQUEST_HEADERS參數(shù)來配置默認(rèn)的請求頭信息。例如,設(shè)置Referer和Cookie:
DEFAULT_REQUEST_HEADERS = {
    'Referer': 'http://www.example.com',
    'Cookie': 'session_id=xxxxx',
}
11.配置是否啟用重定向
可以通過配置REDIRECT_ENABLED參數(shù)來控制是否啟用請求的重定向。例如,禁用重定向:
REDIRECT_ENABLED = False
12.配置去重過濾器
Scrapy框架內(nèi)置了去重過濾器,用于過濾已經(jīng)爬取過的URL??梢酝ㄟ^配置DUPEFILTER_CLASS參數(shù)來選擇使用的去重過濾器。例如,使用基于Redis的去重過濾器:
DUPEFILTER_CLASS = 'scrapy_redis.dupefilter.RFPDupeFilter'

這些只是settings.py文件中一些可能用到的配置項。根據(jù)實際需求,你可以根據(jù)Scrapy框架提供的各種功能來對settings.py文件進(jìn)行自定義的配置,以滿足你的爬蟲需求。文章來源地址http://www.zghlxwxcb.cn/news/detail-527533.html

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

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【python爬蟲】14.Scrapy框架講解

    【python爬蟲】14.Scrapy框架講解

    前兩關(guān),我們學(xué)習(xí)了能提升爬蟲速度的進(jìn)階知識——協(xié)程,并且通過項目實操,將協(xié)程運用于抓取薄荷網(wǎng)的食物數(shù)據(jù)。 可能你在體驗開發(fā)一個爬蟲項目的完整流程時,會有這樣的感覺:原來要完成一個完整的爬蟲程序需要做這么多瑣碎的工作。 比如,要導(dǎo)入不同功能的模塊

    2024年02月09日
    瀏覽(16)
  • python爬蟲之Scrapy框架--保存圖片(詳解)

    python爬蟲之Scrapy框架--保存圖片(詳解)

    目錄 Scrapy 使用ImagePipeline 保存圖片 使用圖片管道? 具體步驟 安裝相關(guān)的依賴庫 創(chuàng)建Scrapy項目 配置settings.py? ?定義Item ?編寫Spider 運行Spider Scrapy 自定義ImagePipeline 自定義圖片管道 Scrapy提供了一個 ImagePipeline ,用來下載圖片這條管道,圖片管道 ImagesPipeline ?提供了方便并具有

    2024年02月11日
    瀏覽(16)
  • Scrapy:Python中強(qiáng)大的網(wǎng)絡(luò)爬蟲框架

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

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

    2024年02月19日
    瀏覽(23)
  • Python爬蟲開發(fā):Scrapy框架與Requests庫

    Python爬蟲開發(fā)中有兩個非常流行的工具:Scrapy框架和Requests庫。它們各自有自己的優(yōu)點和適用場景。 Scrapy Scrapy是一個為了爬取網(wǎng)站并提取結(jié)構(gòu)化數(shù)據(jù)而編寫的應(yīng)用框架,可以非常方便地實現(xiàn)網(wǎng)頁信息的抓取。Scrapy提供了多種可配置、可重用的組件,如調(diào)度器、下載器、爬蟲和

    2024年02月19日
    瀏覽(15)
  • Scrapy框架之MongoDB通過配置文件管理參數(shù)--Linux安裝MongoDB--圖形管理工具

    Scrapy框架之MongoDB通過配置文件管理參數(shù)--Linux安裝MongoDB--圖形管理工具

    目錄 MongoDB通過配置文件 問題 解決方案 ?步驟 提示 Linux安裝MongoDB 環(huán)境 下載依賴與安裝包 解壓安裝? MongoDB GUI管理工具? 獨立軟件GUI軟件 Robo 3T使用 VSCode集成GUI插件 問題 啟動MongoDB時,編寫參數(shù)太麻煩 解決方案 通過配置文件統(tǒng)一管理 找到MongoDB的配置文件:在MongoDB的安裝目

    2024年02月12日
    瀏覽(24)
  • 【100天精通python】Day45:python網(wǎng)絡(luò)爬蟲開發(fā)_ Scrapy 爬蟲框架

    目錄 1 Scrapy 的簡介 2 Scrapy選擇器 3 快速創(chuàng)建Scrapy 爬蟲 4 下載器與爬蟲中間件

    2024年02月11日
    瀏覽(31)
  • 網(wǎng)絡(luò)爬蟲(Python:Selenium、Scrapy框架;爬蟲與反爬蟲筆記)

    網(wǎng)絡(luò)爬蟲(Python:Selenium、Scrapy框架;爬蟲與反爬蟲筆記)

    Selenium是一個模擬瀏覽器瀏覽網(wǎng)頁的工具,主要用于測試網(wǎng)站的自動化測試工具。 Selenium需要安裝瀏覽器驅(qū)動,才能調(diào)用瀏覽器進(jìn)行自動爬取或自動化測試,常見的包括Chrome、Firefox、IE、PhantomJS等瀏覽器。 注意:驅(qū)動下載解壓后,置于Python的安裝目錄下;然后將Python的安裝目

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

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

    2024年02月16日
    瀏覽(24)
  • scrapy----setting配置

    #1 了解 BOT_NAME = \\\"firstscrapy\\\" ?#項目名字,整個爬蟲名字 #2 爬蟲存放位置 ? ?了解 SPIDER_MODULES = [\\\"firstscrapy.spiders\\\"] NEWSPIDER_MODULE = \\\"firstscrapy.spiders\\\" #3 ?記住 是否遵循爬蟲協(xié)議,一般都設(shè)為False ROBOTSTXT_OBEY = False # 4 記住 USER_AGENT = \\\"firstscrapy (+http://www.yourdomain.com)\\\" #5 ?記住 ?日志級別

    2024年02月16日
    瀏覽(15)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包