【 百度雲搜尋:http://www.lqkweb.com 】 搜網盤:http://www.swpan.cn
一般抓取過的url不重複抓取,那麼就需要記錄url,判斷目前URL如果在記錄裡說明已經抓取過了,如果不存在說明沒抓取過
記錄url可以是緩存,或者資料庫,如果儲存資料庫按照以下方式:
id URL加密(建索引以便查詢) 原始URL
儲存URL表裡應該至少有以上3個字段
1、URL加密(建索引以便查詢)字段:用來查詢這樣速度快,
2、原始URL,用來給加密url做對比,防止加密不同的URL出現同樣的加密值
自動遞歸url
# -*- coding: utf-8 -*-
import scrapy #導入爬蟲子產品
from scrapy.selector import HtmlXPathSelector #導入HtmlXPathSelector子產品
from scrapy.selector import Selector
class AdcSpider(scrapy.Spider):
name = 'adc' #設定爬蟲名稱
allowed_domains = ['hao.360.cn']
start_urls = ['https://hao.360.cn/']
def parse(self, response):
#這裡做頁面的各種擷取以及處理
#遞歸查找url循環執行
hq_url = Selector(response=response).xpath('//a/@href') #查找到目前頁面的所有a标簽的href,也就是url
for url in hq_url: #循環url
yield scrapy.Request(url=url, callback=self.parse) #每次循環将url傳入Request方法進行繼續抓取,callback執行parse回調函數,遞歸循環
#這樣就會遞歸抓取url并且自動執行了,但是需要在settings.py 配置檔案中設定遞歸深度,DEPTH_LIMIT=3表示遞歸3層
這樣就會遞歸抓取url并且自動執行了,但是需要在settings.py 配置檔案中設定遞歸深度,DEPTH_LIMIT=3表示遞歸3層

【轉載自:
http://www.leiqiankun.com/?id=48