溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在python中使用scrapy模塊

發(fā)布時間:2021-02-20 13:41:36 來源:億速云 閱讀:302 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)如何在python中使用scrapy模塊,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

如何在python中使用scrapy模塊

二、基本使用

2.1 環(huán)境安裝

1.linux和mac操作系統(tǒng)

pip install scrapy

2.windows系統(tǒng)

  1. 先安裝wheel:pip install wheel

  2. 下載twisted:下載地址

  3. 安裝twisted:pip install Twisted?17.1.0?cp36?cp36m?win_amd64.whl(記得帶后綴)

  4. pip install pywin32

  5. pip install scrapy

3.Anaconda(推薦)

在我一開始學(xué)python使用的就是python3.8,在安裝各種庫的時候,總會有各種報錯,真的有點讓人奔潰。Anaconda在安裝過程中就會安裝一些常用的庫,其次,當(dāng)我們想要安裝其他庫時也很方便。當(dāng)然大家也可以選擇安裝其他的一些軟件,

如何在python中使用scrapy模塊

2.2 scrapy使用流程

這里默認大家已經(jīng)安裝好scrapy庫,大家要記得要在命令行里輸入以下命令啊。(我使用的anaconda的命令行)

創(chuàng)建工程

scrapy startproject projectName

如何在python中使用scrapy模塊
如何在python中使用scrapy模塊

進入工程目錄:這里一定要進入到剛才創(chuàng)建好的目錄中

cd projectName

如何在python中使用scrapy模塊

創(chuàng)建爬蟲文件:創(chuàng)建的爬蟲文件會出現(xiàn)在之前創(chuàng)建好的spiders文件夾下

scrapy genspider spiderName www.xxx.com

如何在python中使用scrapy模塊如何在python中使用scrapy模塊

編寫相關(guān)代碼

執(zhí)行爬蟲文件

scrapy crawl spiderName

如何在python中使用scrapy模塊

2.3 文件解析

import scrapy

class HelloSpider(scrapy.Spider):
 name = 'hello' # 爬蟲名稱

 # 允許的域名:限定start_urls列表當(dāng)中哪些url可以進行請求的發(fā)送
 # 通常情況下我們不會使用
 # allowed_domains = ['www.baidu.com'] 

 # 起始的url列表:scrapy會自動對start_urls列表中的每一個url發(fā)起請求
 # 我們可以手動添加我們需要訪問的url
 start_urls = ['https://www.baidu.com/','https://www.csdn.net/']

 def parse(self, response): # 當(dāng)scrapy自動向start_urls中的每一個url發(fā)起請求后,會將響應(yīng)對象保存在response對象中
 # 代碼一般是在parse方法中寫
 print("response:",response)

如何在python中使用scrapy模塊

2.4 settings.py一些常見的設(shè)置

相當(dāng)于requests中的headers參數(shù)中的User-Agent

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.68'

可以忽略或者不遵守robots協(xié)議

ROBOTSTXT_OBEY = False

只有程序出現(xiàn)錯誤的情況下,才顯示日志文件,程序正常執(zhí)行時只會輸出我們想要的結(jié)果

LOG_LEVEL='ERROR' == scrapy crawl spiderName --nolog
//二者是等價的,當(dāng)然還是推薦使用前者

未加LOG_LEVEL='ERROR'

如何在python中使用scrapy模塊

LOG_LEVEL='ERROR'之后

如何在python中使用scrapy模塊

scrapy 爬取文件保存為CSV文件中文亂碼的解決辦法

//下面的設(shè)置可能會導(dǎo)致繁體出現(xiàn),可以逐個試一下
FEED_EXPORT_ENCODING = "gb18030"
FEED_EXPORT_ENCODING = "utf-8"
FEED_EXPORT_ENCODING = "gbk"

如何在python中使用scrapy模塊

三、實例

3.1 實例要求

目的:爬取百度網(wǎng)頁的百度熱榜

如何在python中使用scrapy模塊 

3.2 實例代碼

實例代碼

如何在python中使用scrapy模塊 

關(guān)于如何在python中使用scrapy模塊就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI