获取价格时出现list index out of range
来源:2-8 爬取当当网的数据
慕仰8543635
2019-07-21
def spider(sn):
""" 爬取数据 """
url = 'http://search.dangdang.com/?key={sn}&act=input'.format(sn=sn)
# 获取网页数据
html_data = requests.get(url).text
# 提取xpath对象
selector = html.fromstring(html_data)
# 书本数据列表
ul_list = selector.xpath('//div[@id="search_nature_rg"]/ul/li')
n = 0
for li in ul_list:
n += 1
print('这是第%d本的数据' % n)
# 获取书名
title = li.xpath('a/@title')
print('书名:', title[0])
# 购买链接
link = li.xpath('a/@href')
print('购买链接:', link[0])
# 获取价格
price = li.xpath('p[@class="price"]/span[@class="search_now_price"]/text()')
print('当前价格:', price[0])
print('------------------------')
if __name__ == '__main__':
spider('python')报错内容:
Traceback (most recent call last):
File "/Users/leenh/Desktop/py_json/spider_dangdang.py", line 42, in <module>
spider('python')
File "/Users/leenh/Desktop/py_json/spider_dangdang.py", line 35, in spider
print('当前价格:', price[0])
IndexError: list index out of range代码附上了,求解一下为什么会出现越界的情况
写回答
1回答
-
NavCat
2019-07-22
第29本书为电子书,其页面HTML结构跟其它书籍不一样,具体见下图:

代码修改:
price = li.xpath('//p[@class="price"]/span[@class="search_now_price"]/text()')00
相似问题
