beautifulSoup4 .select('.bnrName') 取不到到 text 文字

背景:
Python3 下使用 bs4 的 select 去获取 ZOZO首页上方的 coupon 信息中店铺名字。 (国内ip貌似看不到优惠券信息,需要翻一下才能看到,最好是岛国ip)

问题:
发现自己找不到他的店铺名字在写在什么地方,不知道怎么取,前端 js 不懂,请教诸位解答。谢谢。

自己的代码如下:

import requests, bs4

shopName = 'BEAUTY&YOUTH'
url = 'http://zozo.jp/'

def getZozoCoupon():
    res = requests.get(url, headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"})
    res.raise_for_status()
    soup = bs4.BeautifulSoup(res.text, 'html.parser')
    elems = soup.select('.bnrName')
    return elems[0].text.strip()

如下截图中是想要获取的文字,
Imgur

发现查看源码中却没有文字。

<div class="couponInfo">
    <p class="bnrName">说好的文字呢。。。</p>
    <p class="bnrText"></p>
</div>

请教他的文字是在哪实现的啊,要怎么用bs4 select才出来,谢谢。

阅读 3.8k
2 个回答
新手上路,请多包涵

我在浏览器中打开http://zozo.jp/查看源代码并没有找到你所要找的bnrName
图片描述

确实是js生成的,已经采用headless浏览器模拟抓取了,谢谢大家!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题