使用Splash Scrapy爬取一號店

2021-10-05 13:53:28 字數 3296 閱讀 4023

1.首先在虛擬機器搭建好splash環境,參考:

2.安裝splash對應的python庫

pip install scrapy-splash

3.建立好專案

不會建立專案可以參考

robotstxt_obey = false

#設定splash伺服器位址

splash_url = ''

#設定去重過濾器

dupefilter_class = 'scrapy_splash.splashawaredupefilter'

#設定快取

#支援cache_args(可選)

spider_middlewares =

**********_middlewares =

在item.py中把需要獲取的屬性封裝起來

from yihaodian.items import yihaodianitem #匯入item模組

from scrapy_splash import splashrequest #匯入splashrequest模組,代替以前用的request模組

splash是通過lua指令碼來執行一系列的渲染操作,從而實現頁面的抓取

指令碼的執行邏輯:

1.先開啟url

2.等待指定時間

3.執行js**,滾動到class='mod_turn_page clearfix mt20'的標籤,這標籤是一號店的翻頁的div

splash:go(args.url) #載入的url

splash:wait(args.wait) #等待時間

splash:runjs("document.getelementsbyclassname('mod_turn_page clearfix mt20')[0].scrollintoview(true)")

splash:wait(args.wait)

return splash:html()

end"""

這裡用了splashrequest來代替request

endpoint='execute',#splash服務介面,執行lua指令碼

args=,

cache_args=['lua_source'])#快取

def parse(self, response):

item = yihaodianitem()

list_selecotr = response.xpath("//div[@class='itembox']")

for one_selecotr in list_selecotr:

price = one_selecotr.xpath(".//em[@class='num']/text()").extract()[-1]

price = price.strip("\n\t")

title = one_selecotr.xpath(".//p[@class='proname clearfix']/a/text()").extract()[-1]

title = title.strip("\n\t")

positiveratio = one_selecotr.xpath(".//span[@class='positiveratio']/text()").extract()[-1]

storename = one_selecotr.xpath(".//span[@class='shop_text']/text()").extract()

item["price"] = price

item["title"] = title

item["positiveratio"] = positiveratio

item["storename"] = storename

yield item

#翻頁next_url = response.xpath("//a[@class='page_next']/@href").extract_first()

if next_url:

url = '' + next_url

yield splashrequest(url,

callback=self.parse,

endpoint='execute',

args=,

cache_args=['lua_source']) # 快取

iview admin 使用爬坑

前段時間公司需要開發乙個後台管理系統,時間比較急迫,一兩天時間。想一想自己一點一點的搭建起來可能性不太大,就想著有沒有現成的可以改一改,就找到了基於vue.js和iview元件庫的現成後台,拿來改改就可以了 iview admin。一 介紹 1.iview ui元件庫是基於vue.js的ui元件庫 ...

使用nodejs爬取資料

let requests require requests 傳送http請求 具體詳情 let fs require fs 檔案系統 具體詳情 let path require path 路徑 新增鏈結描述 const cheerio require cheerio 在nodejs中類似jq的 符號...

學習日記 使用BeautifulSoup爬取小說

半個月前入坑了python,近幾天看到csdn上有一些關於美麗的湯 beautifulsoup 的介紹和使用方法,於是自己也試著寫了乙個爬蟲。小白的學習日記,若有不當之處,歡迎大神們指點!使用python版本 python3.8 隨便在網上搜了個 試著爬下來。鏈結 檢視網頁的源 發現文章內容都是p標...