scrapy splash抓取動態資料例子八

2022-06-11 17:12:07 字數 4141 閱讀 5916

本例子用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...