获取商品列表信息代码 api测试
1、强制等待10秒,用于刷新或滑动页面,使页面所有信息加载完成;
2、pyquery请求HTML页面信息,并进行解析;
3、商品详细信息(商品标题、价格、销量、商铺名称、地区、详情页链接、商铺链接等)
4、将获取的信息写入字典和Excel表格中;
# 获取每一页的商品信息;
def get_goods(page):
# 声明全局变量count
global count
# 获取商品前固定等待10秒,刷新/滑动界面,使所有信息都加载完成
time.sleep(10)
html = driver.page_source
doc = pq(html)
# 提取所有商品的共同父元素的类选择器
items = doc('div.PageContent--contentWrap--mep7AEm > div.LeftLay--leftWrap--xBQipVc > div.LeftLay--leftContent--AMmPNfB > div.Content--content--sgSCZ12 > div > a').items()
for item in items:
# 定位商品标题
title = item.find('.Title--title--jCOPvpf span').text()
# 定位价格
price_int = item.find('.Price--priceInt--ZlsSi_M').text()
price_float = item.find('.Price--priceFloat--h2RR0RK').text()
if price_int and price_float:
price = float(f"{price_int}{price_float}")
else:
price = 0.0
# 定位交易量
deal = item.find('.Price--realSales--FhTZc7U').text()
# 定位所在地信息
location = item.find('.Price--procity--_7Vt3mX').text()
# 定位店名
shop = item.find('.ShopInfo--TextAndPic--yH0AZfx a').text()
# 定位包邮的位置
postText = item.find('.SalesPoint--subIconWrapper--s6vanNY span').text()
postText = "包邮" if "包邮" in postText else "/"
# 定位商品url
# t_url = item.find('.Card--doubleCardWrapper--L2XFE73')
# t_url = t_url.attr('href')
t_url = item.attr('href')
# print(t_url)
# 定位店名url
shop_url = item.find('.ShopInfo--TextAndPic--yH0AZfx a')
shop_url = shop_url.attr('href')
# print(shop_url)
# 定位商品图片url
img = item.find('.MainPic--mainPicWrapper--iv9Yv90 img')
img_url = img.attr('src')
# print(img_url)
# 构建商品信息字典
product = {
'Page': page,
'Num': count-1,
'title': title,
'price': price,
'deal': deal,
'location': location,
'shop': shop,
'isPostFree': postText,
'url': t_url,
'shop_url': shop_url,
'img_url': img_url
}
print(product)
# 商品信息写入Excel表格中
wb.cell(row=count, column=1, value=page) # 页码
wb.cell(row=count, column=2, value=count-1) # 序号
wb.cell(row=count, column=3, value=title) # 标题
wb.cell(row=count, column=4, value=price) # 价格
wb.cell(row=count, column=5, value=deal) # 付款人数
wb.cell(row=count, column=6, value=location) # 地理位置
wb.cell(row=count, column=7, value=shop) # 店铺名称
wb.cell(row=count, column=8, value=postText) # 是否包邮
wb.cell(row=count, column=9, value=t_url) # 商品链接
wb.cell(row=count, column=10, value=shop_url) # 商铺链接
wb.cell(row=count, column=11, value=img_url) # 图片链接
count += 1