我正试图从这个网站上获取优惠券代码:https://www.cuponation.com.sg/zalora-coupon
我只想要代码(通常在用户单击“查看代码”后显示,优惠券代码将在新选项卡中打开,而原始选项卡将重新指向商家的网站)请注意,我只想要代码,因此不想单击“查看折扣”按钮。你知道吗
我附加了一些摘要代码,还尝试在单击“查看代码”之后查看网络请求,以便让python发送正确的网络请求来刮取优惠券代码,但似乎无法做到这一点。唯一的替代方法似乎是使用Selenium来模拟用户的点击,但是这太单调了,而且资源太多。相反,Python有没有办法触发正确的网络请求,并将所有代码输出到json文件以供查看。你知道吗
尝试修改下面的摘要代码,但似乎无法识别为获取优惠券代码而触发的正确网络请求。你知道吗
from scrapy.http import Request
from scrapy.item import Item, Field
from scrapy.selector import HtmlXPathSelector
from scrapy.spider import BaseSpider
class VoucherItem(Item):
voucher_id = Field()
code = Field()
class CuponationSpider(BaseSpider):
name = "cuponation"
allowed_domains = ["cuponation.in"]
start_urls = ["https://www.cuponation.in/babyoye-coupons"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
crawled_items = hxs.select('//div[@class="six columns voucher-btn"]/a')
for button in crawled_items:
voucher_id = button.select('@data-voucher-id').extract()[0]
item = VoucherItem()
item['voucher_id'] = voucher_id
request = Request("https://www.cuponation.in/clickout/index/id/%s" % voucher_id,
callback=self.parse_code,
meta={'item': item})
yield request
def parse_code(self, response):
hxs = HtmlXPathSelector(response)
item = response.meta['item']
item['code'] = hxs.select('//div[@class="code-field"]/span/text()').extract()
return item
预期产量:
{"voucher_id": "5735", "code": ["MUM10"]}
{"voucher_id": "5446", "code": ["APP20"]}
{"voucher_id": "3963", "code": ["CNATION150"]}
目前没有回答
相关问题 更多 >
编程相关推荐