日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scrapy八小时快速入门第一小时:安装,创建与执行我们的Scrapy爬虫

發(fā)布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scrapy八小时快速入门第一小时:安装,创建与执行我们的Scrapy爬虫 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

安裝

安裝Scrapy非常簡單,只需要在終端輸入pip install scrapy,然后執(zhí)行命令即可,如果不行,那么一般是底層庫的問題,可以使用codna install --upgrade scrapy代替之前的命令,雖然anconda的庫更新要慢一些,不過一般沒什么問題

創(chuàng)建項目

請在命令行下scrapy startproject name即可,示例如下,當(dāng)我們使用命令之后,scrapy就會幫我們創(chuàng)建相應(yīng)的項目:

這時候我們可以tree一下,查看我們的目錄結(jié)構(gòu),其中的spider文件夾,就是我們編寫我們自己的腳本的地方

Scrapy 框架除了基本的Response,request,Downloader,等之外,其強(qiáng)大之處就是幫助我們實現(xiàn)了幾乎整個流程,在最基本的情況下,我們甚至只需要編寫十幾行代碼就可以完成一個爬蟲.

比如其中的item文件中編寫的是對數(shù)據(jù)封裝的方法

其中的pipline.py 是用來編寫數(shù)據(jù)處理的方法的,在Spider中的我們自己編寫的spider執(zhí)行之后,我們就可以調(diào)用item中的方法對獲取的數(shù)據(jù)進(jìn)行處理,

而setting則是配置文件,除此之外我們還可以使用Scrapy提供給我們的很多已經(jīng)寫好的方法,或者重寫他們來實現(xiàn)一些我們需要的功能,而這一切又都是非常簡單的.

我們這里再從github上Scrapy 的項目中下載一個demo,或者也可以從我的這個地址下載相應(yīng)的內(nèi)容,之后我的這個系列的代碼都會放在這個地址

我們tree一下子這個文檔,就可以查看到相應(yīng)的內(nèi)容,示例如下:

下面是其中的示例代碼:

# -*- coding: utf-8 -*- import scrapyclass BooksSpider(scrapy.Spider):# 首先要繼承原來額Spider方法name = "books"# 然后是name ,用于在終端中執(zhí)行該腳本# allowed_domains = ["books.toscrape.com"]# start_urls = ['http://books.toscrape.com/',]# 我們需要一個start urldef parse(self, response):for book_url in response.css("article.product_pod > h3 > a ::attr(href)").extract():yield scrapy.Request(response.urljoin(book_url), callback=self.parse_book_page)# 然后是獲取相應(yīng)內(nèi)容,并創(chuàng)建解析函數(shù)next_page = response.css("li.next > a ::attr(href)").extract_first()if next_page:yield scrapy.Request(response.urljoin(next_page), callback=self.parse)# 關(guān)鍵之處之一,找到下一個鏈接def parse_book_page(self, response):# 解析函數(shù),我們在Scrapy中使用,Selector與xpath選擇器,css選擇器與一些其他Python代碼實現(xiàn)該功能item = {}product = response.css("div.product_main")item["title"] = product.css("h1 ::text").extract_first()item['category'] = response.xpath("//ul[@class='breadcrumb']/li[@class='active']/preceding-sibling::li[1]/a/text()").extract_first()item['description'] = response.xpath("//div[@id='product_description']/following-sibling::p/text()").extract_first()item['price'] = response.css('p.price_color ::text').extract_first()yield item

至于,這份代碼的詳細(xì)解釋,我會在之后的內(nèi)容中給出,當(dāng)然這份簡單的demo是不能幫助我們真正的入門的,我們還需要一些其他內(nèi)容,之后我會寫更多的demo.

執(zhí)行

scrapy crawl name -o xxxxx.csv,這時候我們可以在剛剛的tree的路徑下,繼續(xù)執(zhí)行爬蟲的命令,效果如圖:

圖片上面是執(zhí)行完畢后的留下的日志,而下面則是我們剛剛執(zhí)行的命令.

現(xiàn)在我們就可以看看我們獲取的信息到底是不是我們的start_url了:

看來沒什么問題

提供參考

  • FontTian的Scrapy爬蟲入門
  • FontTian的Scrapy爬蟲教程的Github項目
  • Scrapy的Github
  • 總結(jié)

    以上是生活随笔為你收集整理的Scrapy八小时快速入门第一小时:安装,创建与执行我们的Scrapy爬虫的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。