scrapy爬取網頁資訊,儲存到MySQL資料庫

2021-09-27 02:13:09 字數 2607 閱讀 7567

爬取**

網頁資訊分析

我們要爬取頁面的名言內容和相對應的標籤內容,存入mysql資料庫中。

通過分析頁面,每乙個名言的div盒子的class名稱都是quote,我們使用css選擇器,先把盒子中內容挑選出來,再對盒子中的內容進行提取。

response.css(".quote")
設v為盒子中的內容

盒子中第乙個span包含名言內容,class名為該盒子中唯一

v.css("span.text::text")
盒子中的class=tags盒子,標籤a中包含標籤內容,且class名字為tag

v.css(".tags .tag::text")
資料庫設定新建乙個scrapymysql的資料庫。

在其中新建乙個表,名字為mingyan,包含三列,分別是id,tag,content

id, int,長度2 主鍵,自增

tag char 長度10

content varchar 長度255

專案

scrapy startproject scarpymysql
import scrapy

class scrapymysqlitem(scrapy.item):

tag = scrapy.field() # 標籤字段

content = scrapy.field() # 名言內容

pass

import scrapy

from scrapymysql.items import scrapymysqlitem

class inputmysql(scrapy.spider):

name = "inputmysql"

allowed_domains = ["lab.scrapyd.cn"]

start_urls = [""]

def parse(self, response):

mingyan = response.css(".quote")

item = scrapymysqlitem() # 例項化item類

for v in mingyan: # 迴圈獲取每一條名言裡面的:名言內容、標籤

item['content'] = v.css("span.text::text").get() # 提取名言內容

tags = v.css(".tags .tag::text").getall() # 提取所有標籤

item['tag'] = ",".join(tags) # 把所有標籤組合成乙個字串

yield item

import pymysql.cursors

import pymysql

class mysqlpipeline(object):

def __init__(self):

# 連線資料庫

self.connect = pymysql.connect(

host="127.0.0.1", # 資料庫位址

port=3306, # 資料庫埠

db="scrapymysql", # 資料庫名稱

user="root", # 資料庫使用者

passwd="root", # 資料庫密碼

charset="utf8", # 資料庫編碼方式

use_unicode=true

)# 通過cursor執行增刪改查

self.cursor = self.connect.cursor()

def process_item(self, item, spider):

self.cursor.execute("insert into mingyan(tag, content) value (%s, %s)", (item['tag'], item['content']))

# 提交sql語句

self.connect.commit()

return item # 必須實現返回

item_pipelines =
啟動專案

scrapy crawl inputmysql
專案結構如下

資料庫結果

Scrapy爬取網頁並儲存到資料庫中

scrapy爬取網頁並儲存到資料庫中 一.新建乙個scrapy工程。進入乙個你想用來儲存 的資料夾,然後執行 t scrapy startproject fjsen 會生成一堆資料夾和檔案 scrapy.cfg 專案配置檔案 tutorial 專案python模組,呆會 將從這裡匯入 tutoria...

Scrapy爬取並儲存到TXT檔案

在建立完成專案並建立爬蟲的基礎上,編寫儲存到txt的專案 1.將 robotstxt obey 設定為false 2.將 item pipelines 開啟 item是scrapy提供的類似於字典型別的資料容器,它與字典最大的區別在於它規定了統一的資料規格樣式,即具有統一性與結構性。這樣既方便資料的...

scrapy爬取資料並儲存到文字

1.scrapy專案結構如下 2.開啟spidler目錄下的duba.py檔案,如下 這個是根據豆瓣一部分頁面獲取的熱門話題內容,有6條資料 coding utf 8 import scrapy from scrapydemo.items import scrapydemoitem from lxm...