我有一个网站,我想从哪里删除优惠券代码。我在这里有两个问题。在这里使用python和beautifull汤。 1)span标签中显示的一些优惠券没有类或ID,因此无法从这些标签中获取优惠券。我需要从强标签获取(AXISCB50)
<h6><span style="color: #808000">25% Cashback on Recharges :</span></h6>
<ul>
<li>Get 25% Cashback upto Rs.25 per transaction.</li>
<li>Coupon Code : <span style="color: #ff0000"><strong>AXISCB50</strong></span></li>
<li>Maximum 2 transaction per Debit/Credit card.</li>
</ul>
是否可以通过指定style =&#34; color:#808000这样(样式)来废弃。
2)有些优惠券是通过ajax显示的,只有在我们点击按钮时才会显示。如何通过脚本显示这些数据?
我是第一次进行网络抓取。感谢任何帮助,并提前致谢。
答案 0 :(得分:2)
要获得优惠券代码,我不会依赖于颜色样式属性。相反,请将 next element添加到Coupon Code
文本:
soup.find(text=lambda x: x and x.startswith('Coupon Code')).next_element.text
演示:
>>> from bs4 import BeautifulSoup
>>>
>>> data = """
... <h6><span style="color: #808000">25% Cashback on Recharges :</span></h6>
... <ul>
... <li>Get 25% Cashback upto Rs.25 per transaction.</li>
... <li>Coupon Code : <span style="color: #ff0000"><strong>AXISCB50</strong></span></li>
... <li>Maximum 2 transaction per Debit/Credit card.</li>
... </ul>
... """
>>>
>>> soup = BeautifulSoup(data)
>>>
>>> print soup.find(text=lambda x: x.startswith('Coupon Code')).next_element.text
AXISCB50
有些优惠券是通过ajax显示的,只显示一次 点击按钮。如何通过显示这些数据 脚本?
您需要研究单击按钮时发送的请求。使用浏览器开发者工具,Network选项卡。然后,模拟python代码中的请求。 requests
通常是一个不错的选择。