调试模式里面的title可以获取到所有的值,但是程序执行的时候只获取下标为0的值,并且遍历了30遍
来源:2-10 爬取1号店的数据

qq_任先生_2
2019-04-26
div_list = selector.xpath('//div/div[@class="itemBox"]')
print len(div_list)
'''遍历取出价格,标题,出版处'''
for li in div_list:
'''标题'''
title = li.xpath('//p[@class="proName clearfix"]/a/@title')
'''价格'''
price = li.xpath('//p[@class="proPrice"]//@yhdprice')
print title[0]
print price[0]
print "------------------------------------"
30
不一样的饮品:茶饮调酒咖啡蔬果汁 花祥育 9787518418664 中国轻工业出版社
32.4
不一样的饮品:茶饮调酒咖啡蔬果汁 花祥育 9787518418664 中国轻工业出版社
32.4
不一样的饮品:茶饮调酒咖啡蔬果汁 花祥育 9787518418664 中国轻工业出版社
32.4
不一样的饮品:茶饮调酒咖啡蔬果汁 花祥育 9787518418664 中国轻工业出版社
32.4
不一样的饮品:茶饮调酒咖啡蔬果汁 花祥育 9787518418664 中国轻工业出版社
32.4
写回答
3回答
-
# author: David # -*- coding:utf-8 -*- import requests from lxml import html def spider(isbn, book_list=[]): """ 爬取1号店的图书信息 """ url = 'https://search.yhd.com/c0-0/k{0}/'.format(isbn) # 获取 html 源码 html_doc = requests.get(url).text # 获取 xpath 对象 selector = html.fromstring(html_doc) # 找到书籍列表 ul_list = selector.xpath('//div[@id="itemSearchList"]/div') print(len(ul_list)) # 解析内容 for li in ul_list: # 获取书名 title1 = li.xpath('div/p/a[@class="mainTitle"]/text()')[1].strip() if not title1: title2 = li.xpath('div//p/a[@pmid="0"]/text()')[1].strip() title = title2 else: title = title1 print("商品标题:", title) # 获取链接 link1 = li.xpath('div/p/a[@class="mainTitle"]/@href')[0].replace('//', 'http://') if not link1: link2 = li.xpath('div//p/a[@pmid="0"]/@href')[0].replace('//', 'http://') link = link2 else: link = link1 print("商品链接:", link) # 获取价格 price = li.xpath('div/p/em[@class="num"]/text()')[1].strip() print("商品价格:", price[1].strip()) # 获取店铺 store = li.xpath('div/p/a/span[@class="shop_text"]/text()')[0] print(" 店铺名称:", store[0]) # 我是分割线 print('--------------------------') if __name__ == '__main__': isbn = 9787115478818 spider(isbn)
012019-04-29 -
慕粉3543411
2019-05-30
请问你的问题解决了吗?我也使用了相同标签
00 -
David璐_senior_DBA
2019-04-27
标签选的不对
00
相似问题