使用 css 样式使用 Beautifulsoup 从网站抓取数据

Scrape Data from Website using css style Using Beautifull soup

我有一个网站,我想从中获取优惠券 codes.I 有两个问题 here.Am 使用 python 和美丽的汤。 1) span 标签中显示的一些优惠券没有 class 或 id,因此无法从这些 tags.i 中获取优惠券,需要从强标签 (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="color: #808000 something like this(style)" 来抓取。

2)一些优惠券是通过ajax显示的,只有在我们点击button.How后才会显示,我会抓取_这些数据是通过显示的脚本?

第一次参与网络抓取 time.Any 感谢帮助并提前致谢。

要获取优惠券代码,我不会依赖颜色样式属性。相反,获取 next elementCoupon Code text:

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

Some coupons are displayed via ajax which is displayed only once we click the button.How will i scrape_ these data which is displayed via script?

您需要研究单击按钮时发送的请求。使用浏览器开发人员工具,网络选项卡。然后,在您的 python 代码中模拟请求。 requests 通常是一个不错的选择。