获取价格时出现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
相似问题