您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何用Scrapy抓取網頁,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Scrapy是一種快速的高級Web爬蟲和Web抓取框架,用于抓取網站并從其頁面中提取結構化數據。它可用于各種用途,從數據挖掘到監控和自動化測試。
老規矩,使用前先用pip install scrapy進行安裝,如果安裝過程中遇到錯誤一般為error:Microsoft Visual C++ 14.0 is required. 只需要訪問https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted網站下載Twisted-19.2.1-cp37-cp37m-win_amd64安裝即可,注意cp37代表的是我本機python的版本3.7 amd64代表我的操作系統位數。
安裝使用 pip install Twisted-19.2.1-cp37-cp37m-win_amd64.whl即可,然后在重新安裝scrapy就會成功安裝了;安裝成功后我們就可以使用scrapy命令進行創建爬蟲項目了。
接下來在我的桌面運行cmd命令,使用 scrapy startproject webtutorial創建項目:
會在桌面生成一個webtutorial文件夾,我們看下目錄結構:
然后我們在spiders文件夾下新建一個quotes_spider.py,編寫一個爬蟲用來爬取http://quotes.toscrape.com網站保存為一個html文件,網站截圖如下:
代碼如下:
import scrapy
#定義爬蟲類
class QuotesSpider(scrapy.Spider):
#指定爬蟲名字 一會要用到
name = "quotes"
#開始請求方法
def start_requests(self):
urls = [
'http://quotes.toscrape.com/page/1/',
'http://quotes.toscrape.com/page/2/']
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
#解析寫入返回內容到html中
def parse(self, response):
page = response.url.split("/")[-2]
filename = 'quotes-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved file %s' % filename)
之后的目錄結構為:
然后我們在命令行中切換到webtutorial文件夾下,執行命令scrapy crawl quotes進行抓取(quotes為剛才指定的爬蟲名):
發現出錯了,No module named 'win32api',這里我們安裝一下win32api
使用命令 pip install pypiwin32,然后繼續執行scrapy crawl quotes:
可知爬蟲任務成功執行,這時會在webtutorial文件夾下生成兩個html:
關于如何用Scrapy抓取網頁就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。