上回做到把一个页面里面的整个HTML爬下来,下面我们要从中提取我们需要的数据。
先试一下取一个数
方法很简单,找到网页中对应的HTML代码,右键copy->copy Xpath
def parse(self,response):
stock_id = response.xpath('//*[@id="table_wrapper-table"]/tbody/tr[1]/td[2]/a/text()')
self.log('stock id %s' % stock_id)
'''
filename = 'stock_file'
with open(filename,'wb') as f:
f.write(response.body)
'''
# self.log('save file %s' % filename)
可以看到已经取到一个股票代码了
下面试下把一页当中的股票代码都弄下来:
def parse(self,response):
items = response.xpath('//*[@id="table_wrapper-table"]/tbody/tr')
for item in items:
stock_id = item.xpath('td[2]/a/text()').extract()[0]
self.log(stock_id)
可以看到代码了
用同样方法把需要的数据都弄下来,打个日志检查一下数据
def parse(self,response):
items = response.xpath('//*[@id="table_wrapper-table"]/tbody/tr')
for item in items:
stock_id = item.xpath('td[2]/a/text()').extract()[0] # 股票编号
stock_name = item.xpath('td[3]/a/text()').extract()[0] # 股票名称
last_price = item.xpath('td[5]/span/text()').extract()[0] # 最新价格
increase_percent = item.xpath('td[6]/span/text()').extract()[0] # 最新涨幅
increase_amount = item.xpath('td[7]/span/text()').extract()[0] # 最新增长额
turn_over_hand = item.xpath('td[8]/text()').extract()[0] # 成交量(手)
turn_over_amount = item.xpath('td[9]/text()').extract()[0] # 成交额
amplitude = item.xpath('td[10]/text()').extract()[0] # 振幅
highest = item.xpath('td[11]/span/text()').extract()