在此以前我們學會了使用urllib來實現簡單的爬蟲文件爬取網絡信息!但是這還遠遠不夠的。
Scrapy是一個Python的爬蟲框架,使用scrapy可以提高開發效率,並且非常適合做一些中大型的爬蟲項目。提高穩定性。
scrapy安裝
1、升級pip:python -m pip install --upgrade pip
2、安裝wheel:pip install wheel
3、安裝lxml:pip install lxml
4、安裝twisted:pip install twisted
5、安裝scrapy:pip install scrapy
檢測是否安裝成功可以通過輸入scrapy命令查看,如果執行scrapy命令後有東西顯示出來,則表示安裝成功,如下圖:
scrapy指令
bench:可以在項目裏面,也可以在項目外面執行
fetch:直接下載某個網頁
genspider:基於一個爬蟲模板,創建一個爬蟲文件
runspider:運行一個爬蟲
setting:配置爬蟲項目
shell:進入交互模式
startproject:創建爬蟲項目
view:在瀏覽器中打開url網址
scrapy指令根據作用範圍大小分爲:
1、全局指令:無須在項目目錄下才能執行的指令
2、項目指令:必須在項目目錄下才能執行的指令
如項目地址以外執行:scrapy
項目地址裏面執行scrapy:
scrapy實現項目
1、創建爬蟲項目
創建項目成功後,在相應的目錄會生成一個文件夾
把需要爬取的目標屬性全部在items.py中定義好。
2、創建爬蟲文件
其實上一步人家也提醒你了,按照這樣的方式來創建爬蟲文件,提示爲黃色標記部分。
格式:scrapy genspider {文件名} {爬取目標地址}
如上表示創建一個名爲testspider的爬蟲文件,用於爬取baidu.com地址的數據。執行成功後會生成相應的文件
文件修改順序
實戰爬取doxmark信息:
我們要爬取官網的
1、首先用pycharm打開這個項目,編寫items.py
2、編輯spider文件
訪問我們需要爬取的網頁https://www.dxomark.com/cn/,然後觀察他的規則
3、瞭解xpathhttps://www.w3school.com.cn/xpath/xpath_syntax.asp,會的直接跳過
如果你還沒有掌握xpath的話,建議先去了解一下,因爲後面會用到這個規則去解析數據。當然啦,我們也有一個更便捷的方法可以生成xpath。在瀏覽器上右鍵,點擊“檢查元素”,定位到相應的標籤以後,右鍵--》copy--》xpath
找到了以後,按ctrl+F進行查詢,把剛纔copy的xpath粘貼到此處,如下圖,可以顯示出找到的標籤。
4、編寫爬蟲文件,如spiders/testspider.py
# -*- coding: utf-8 -*-
import scrapy
from TestProject1.items import Testproject1Item
class TestspiderSpider(scrapy.Spider):
name = 'testspider'
allowed_domains = ['baidu.com']
start_urls = ['https://www.dxomark.com/cn/']
def parse(self, response):
item = Testproject1Item()
item['title'] = response.xpath("//h5[@class='post-title is-large ']/text()").extract()
item['url'] = response.xpath('//div[@class="row row-full-width"]/div/div/a/@href').extract()
print(item)
5、執行scrapy項目:
如要用命令來執行,如執行testspider爬蟲,scrapy crawl testspider --nolog
效果圖: