本例子用scrapy-splash抓取介面**給定關鍵字抓取諮詢資訊。
給定關鍵字:個性化;融合;電視
抓取資訊內如下:
1、資訊標題
2、資訊鏈結
3、資訊時間
4、資訊**
針對上面的**資訊,來進行抓取
1、首先抓取資訊列表
抓取**:sels = site.xpath('//div[contains(@class,"news-view")]')
2、抓取標題
抓取**:title = sel.xpath('.//div[@class="news-header"]/h3/a/@title')[0].extract()
3、抓取鏈結
抓取**:it['url'] = sel.xpath('.//div[@class="news-header"]/h3/a/@href')[0].extract()
4、抓取日期
抓取**:dates = sel.xpath('.//div[@class="news-footer"]/p/span[2]/text()')
5、抓取**
抓取**:sources =sel.xpath('.//div[@class="news-footer"]/p/span[1]/a/text()')
#request需要封裝成splashrequest
defstart_requests(self):
for url in
self.start_urls:
index = url.rfind('='
)
yield
splashrequest(url
, self.parse
, args=,
meta=
)defcomapre_to_days(self,leftdate, rightdate):
'''比較連個字串日期,左邊日期大於右邊日期多少天
:param leftdate: 格式:2017-04-15
:param rightdate: 格式:2017-04-15
:return: 天數
'''l_time = time.mktime(time.strptime(leftdate, '
%y-%m-%d'))
r_time = time.mktime(time.strptime(rightdate, '
%y-%m-%d'))
result = int(l_time - r_time) / 86400
return
result
defdate_isvalid(self, strdatetext):
currentdate = time.strftime('
%y-%m-%d')
datepattern = re.compile(r'
\d-\d-\d')
dt = strdatetext.replace('
/', '-'
) strdate =re.findall(datepattern, dt)
if len(strdate) == 1:
if self.comapre_to_days(currentdate, strdate[0]) ==0:
return
true, currentdate
return false, ''
defparse(self, response):
site =selector(response)
sels = site.xpath('
//div[contains(@class,"news-view")]')
keyword = response.meta['
keyword']
item_list =
for sel in
sels:
dates = sel.xpath('
.//div[@class="news-footer"]/p/span[2]/text()')
flag,date =self.date_isvalid(dates[0].extract())
title = sel.xpath('
.//div[@class="news-header"]/h3/a/@title
')[0].extract()
if flag and title.find(keyword)>-1:
it =splashtestitem()
it['title
'] =title
it['url
'] = sel.xpath('
.//div[@class="news-header"]/h3/a/@href
')[0].extract()
it['date
'] =date
it['keyword
'] =keyword
sources =sel.xpath('
.//div[@class="news-footer"]/p/span[1]/a/text()')
if len(sources)>0:
it['source
'] =sources[0].extract()
return item_list
scrapy splash抓取動態資料例子四
本例子用scrapy splash抓取微眾圈 給定關鍵字抓取諮詢資訊。給定關鍵字 打通 融合 電視 抓取資訊內如下 1 資訊標題 2 資訊鏈結 3 資訊時間 4 資訊 針對上面的 資訊,來進行抓取 1 首先抓取資訊列表 抓取 sels site.xpath li class itemtitle 2 ...
scrapy splash抓取動態資料例子四
本例子用scrapy splash抓取微眾圈 給定關鍵字抓取諮詢資訊。給定關鍵字 打通 融合 電視 抓取資訊內如下 1 資訊標題 2 資訊鏈結 3 資訊時間 4 資訊 針對上面的 資訊,來進行抓取 1 首先抓取資訊列表 抓取 sels site.xpath li class itemtitle 2 ...
scrapy splash基本使用
1.scrapy splash是scrapy的乙個元件 2.scrapy splash的作用 scrpay splash能夠模擬瀏覽器載入js,並返回js執行後的資料 3.scrapy splash的環境安裝 3.1 使用splash的docker映象 splash的dockerfile 觀察發現s...