hello_52pojie 发表于 2020-6-11 11:22

python爬取京东搜索页面搜索优惠信息求助

各位大佬,小白刚学习python爬虫,尝试爬取京东优惠信息,无奈不会解决问题,也百度不到相关信息,请大佬们请教;

通过xpath爬取优惠信息时,有些是内容,有些无内容,导致无法存储到excel表,或者,存储数值不对应,出现IndexError: list index out of range

有无什么办法能使爬取到的内容对齐,比如对爬取到的li如果是空,赋一个值给它;或者,把同个<li标签下的< i class="goods-icons4 J-picon-tips"内容全合在一起,请问大佬们,能可以吗?感谢





有无什么办法能使爬取到的内容对齐,比如对爬取到的li如果是空,赋一个值给它;或者,把同个<li标签下的< i class="goods-icons4 J-picon-tips"内容全合在一起,请问大佬们,能可以吗?感谢





wb = openpyxl.Workbook()
sheet = wb.active
sheet.titile = '京东'
sheet['A1'] = '编号'
sheet['B1'] = '标题'
sheet['C1'] = '链接'
sheet['D1'] = '价格'
sheet['E1'] = '自营'
sheet['F1'] = '用优惠'

url2 = 'https://search.jd.com/Search?coupon_batch=321809222&coupon_id=65810338915'
response = requests.get(url=url2,data=data,headers=headers)
time.sleep(1)
resp = response.text
# print(resp)
lists = etree.HTML(resp)
infos = lists.xpath("//ul[@class='gl-warp clearfix']")
for info in infos:

    number = info.xpath(".//li/@data-sku")
    title = info.xpath(".//li//div[@class='p-img']/a/@title")
    urls = info.xpath(".//li//div[@class='p-img']/a/@href")
    price = info.xpath(".//strong/i/text()")
    self_support = info.xpath(".//li//div[@class='p-icons']/i[@class='goods-icons J-picon-tips J-picon-fix']/text()")
    coupon = info.xpath(".//li//div[@class='p-icons']//i[@data-tips='本商品可领用优惠券' or @data-tips='本商品参与满减促销' or @data-tips='本商品参与满件促销']/text()")

    print(self_support, coupon)
    for i in range(len(number)):
      sheet.append(, title, urls, price,coupon])
wb.save('京东清单.xlsx')

堕落ぁ狼 发表于 2020-6-11 11:49

你可以把提取数据的逻辑整理一下

商品跟商品优惠券不要分开提取

首先提取到商品块

然后循环商品集合提取商品下对应的优惠、链接之类的信息

把商品理解为一个对象   而不是把属性提取成单个list集合

这样就会好一点

wtfok123 发表于 2020-6-11 11:51

我很赞同!

xiao智可以不帅 发表于 2020-6-11 12:03

你看看是不是有些没有优惠券

jxycer 发表于 2020-6-11 13:20

加油,等出成品

hello_52pojie 发表于 2020-6-11 14:38

堕落ぁ狼 发表于 2020-6-11 11:49
你可以把提取数据的逻辑整理一下

商品跟商品优惠券不要分开提取



大佬,请问你是说先找到各个商品链接,然后再通过访问商品页爬取优惠卷吗,这样就复杂了,我尝试加入了“”join()后还是有问题


-----------------------------------------------------------------------------------

hello_52pojie 发表于 2020-6-11 14:40

xiao智可以不帅 发表于 2020-6-11 12:03
你看看是不是有些没有优惠券

是的,部分没有显示优惠卷,空白,所以造成爬取的内容不对齐,无法保存到excel表中

hello_52pojie 发表于 2020-6-11 14:41

jxycer 发表于 2020-6-11 13:20
加油,等出成品

难,我都被这个问题难住了几个月,百度找相关爬取,都没有爬取优惠卷信息的。

xiao智可以不帅 发表于 2020-6-11 15:03

hello_52pojie 发表于 2020-6-11 14:40
是的,部分没有显示优惠卷,空白,所以造成爬取的内容不对齐,无法保存到excel表中

没有的就标记为无

hello_52pojie 发表于 2020-6-11 15:30

xiao智可以不帅 发表于 2020-6-11 15:03
没有的就标记为无

大佬,能提供下代码吗,小白0基础自学,对代码还是不会独立敲{:17_1074:}
页: [1] 2
查看完整版本: python爬取京东搜索页面搜索优惠信息求助