scrapy爬蟲實用模版例程 一些規則

2021-09-11 06:14:00 字數 3485 閱讀 4271

乙個臨時scrapy任務,可以實現基本的資料爬蟲,根據需要自行增添爬取網頁內容的模版,有空再完善pipline等更高階的功能。

源**和爬房價的**上傳:

目錄

乙個例子

建立專案

分析目標網頁

實現spider

執行和資料儲存

例子分析

爬取網頁50頁,每頁20本書,共1000本書的**和名字,了解scrapy爬蟲編寫的一般步驟。

開啟終端,在目標資料夾下執行:

scrapy startproject example
自動建立工程文件,檔案結構如下(tree example樹形檢視):

example

├── example

│   ├── __init__.py

│   ├── items.py

│   ├── middlewares.py

│   ├── pipelines.py

│   ├── __pycache__

│   ├── settings.py

│   └── spiders

│       ├── __init__.py

│       └── __pycache__

└── scrapy.cfg

下面說明部分可以改的檔案:

items.py : 用於自定義資料類,封裝爬取的資料

pipelines.py:管道設定,與item連用

settings.py:設定檔案

spiders : 該資料夾下後面需要手動建立乙個spider爬蟲程式主體

chorm瀏覽器為例,進入網頁在想要審查元素的地方右鍵滑鼠,選擇檢查,即可定位到html的指定位置。從而獲得網頁和**的對應關係。如下圖,找到第二本書的名字:

分析完頁面後,接下來編寫爬蟲。在scrapy中編寫乙個爬蟲,即實現乙個scrapy.spider的子類。實現爬蟲的python檔案應位於exmaple/spiders目錄下,在該目錄下建立新檔案book_spider.py。然後,在book_spider.py中實現爬蟲booksspider,**如下:

# -*- coding: utf-8 -*-

import scrapy

class booksspider(scrapy.spider):

name = "books" # 每乙個爬蟲的唯一標識

start_urls = [''] # 定義爬蟲爬取的起始點,起始點可以是多個,這裡只有乙個

def parse(self, response):

# 提取資料

# 每一本書的資訊在中,使用css()方法找到所有這樣的article元素,並依次迭代

# 語法也可選擇xpath

for book in response.css('article.product_pod'):

# 書名資訊在article > h3 > a 元素的title屬性裡

# 例如: a light in the ..

name = book.xpath('./h3/a/@title').extract_first()

# 書價資訊在 的text中。

# 例如: £51.77

price = book.css('p.price_color::text').extract_first()

yield

# 提取翻頁鏈結

# 例如: next

next_url = response.css('ul.pager li.next a::attr(href)').extract_first()

if next_url:

next_url = response.urljoin(next_url)

yield scrapy.request(next_url, callback=self.parse)

子類中有三個重要元素:

難點在解析和提取網頁內容,後面分析。

執行下面語句即可,其中books是自定義爬蟲的name屬性:

scrapy crawl books
如果需要輸出可以:

scrapy crawl books -o books.csv #還可以為json檔案
爬取結果:

模版同上,只用修改spider程式的部分,涉及兩個問題:

怎麼提取資料?怎麼提交next請求?

我理解的就是在頁面中通過遍歷尋找和**地點相關的特徵屬性,然後提取其中的資料,方法有css()和xpath(),需要學習部分關於其的語法,以xpath()為主就行,兩者是一樣的。ps:還可以通過html**頁面待提取位置右鍵->copy->copy xpath進行參考

xpath的語法及例子參考如下:

這個網頁也寫的比較清楚,有空要在學習可以看一下:

Python爬蟲 scrapy輔助功能實用函式

scrapy輔助功能實用函式 get response 獲得scrapy.htmlresponse物件,在不新建scrapy專案工程的情況下,使用scrapy的一些函式做測試 extract links 解析出所有符合條件的鏈結 以拉勾首頁為例,獲取拉勾首頁所有職位鏈結,進一步可以單獨解析這些鏈結,...

scrapy爬蟲框架(一) scrapy框架簡介

開啟命令列輸入如下命令 pip install scrapy安裝完成後,python會自動將 scrapy命令新增到環境變數中去,這時我們就可以使用 scrapy命令來建立我們的第乙個 scrapy專案了。開啟命令列,輸入如下命令 scrapy startproject yourproject這裡的...

爬蟲框架scrapy入門(一)

這段時間一直在學爬蟲,做了一些簡單的專案,爬取資料的過程中,被封過ip,需要翻牆,為了大規模的資料採集,開始學習scrapy框架。參照的是靜覓大神的 python3網路爬蟲開發實戰 本次爬取的 是scrapy官網 建議使用anaconda的一鍵安裝,我的電腦上同時有anaconda和pycham,一...