十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
今天就跟大家聊聊有關python爬蟲怎么利用spider抓取程序,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。
spider抓取程序:
在貼上代碼之前,先對抓取的頁面和鏈接做一個分析:
網(wǎng)址:http://category.dangdang.com/pg4-cp01.25.17.00.00.00.html
這個是當當網(wǎng)圖書的鏈接,經(jīng)過分析發(fā)現(xiàn):大種類的id號對應 cp01.25 中的25,小種類對應id號中的第三個 17,pg4代表大種類 —>小種類下圖書的第17頁信息。
為了在抓取圖書信息的同時找到這本圖書屬于哪一大種類下的小種類的歸類信息,我們需要分三步走,第一步:大種類劃分,在首頁找到圖書各大種類名稱和對應的id號;第二步,根據(jù)大種類id號生成的鏈接,找到每個大種類下的二級子種類名稱,及對應的id號;第三步,在大種類 —>小種類的歸類下抓取每本圖書信息。
分步驟介紹下:
1、我們繼承RedisSpider作為父類,start_urls作為初始鏈接,用于請求首頁圖書數(shù)據(jù)
# -*- coding: utf-8 -*- import scrapy import requests from scrapy import Selector from lxml import etree from ..items import DangdangItem from scrapy_redis.spiders import RedisSpider class DangdangSpider(RedisSpider): name = 'dangdangspider' redis_key = 'dangdangspider:urls' allowed_domains = ["dangdang.com"] start_urls = 'http://category.dangdang.com/cp01.00.00.00.00.00.html' def start_requests(self): user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 \ Safari/537.36 SE 2.X MetaSr 1.0' headers = {'User-Agent': user_agent} yield scrapy.Request(url=self.start_urls, headers=headers, method='GET', callback=self.parse)