我一直在使用Scrapy来获取内容,但我在从这个特定网站获取链接时遇到了一些问题:Taleo Site
单击标题会转到作业说明。但是href被设置为#'。
onclick事件是:
onclick="javascript:setEvent(event);requisition_openRequisitionDescription('requisitionListInterface','actOpenRequisitionDescription',_ftl_api.lstVal('requisitionListInterface', 'requisitionListInterface.listRequisition', 'requisitionListInterface.ID1380', this),_ftl_api.intVal('requisitionListInterface', 'requisitionListInterface.ID1384', this));return ftlUtil_followLink(this);
所有职位的所有职位描述的链接也是相同的。所有描述链接都是:
我已经使用scrapy了一段时间,并希望关注链接并抓取内容。我在这种设置方面遇到了麻烦,其中href属性是'#'并且链接由JavaScript创建。
在过去,我会执行以下操作来获取链接并遵循它们,但在这种情况下,这不起作用。
item['link'] = sel.xpath('@href').extract()[0]
我该如何解决这个问题?感谢
答案 0 :(得分:0)
当您点击职位时,浏览器会发送POST
个请求,而不是GET
。这就是链接相同的原因,只有POST
请求参数与每个作业列表不同。
当您检查网络控制台时,您可以在此链接POST
上看到正在发送的https://cantire.taleo.net/careersection/2/jobdetail.ftl
个请求formdata
(键值对)。您可以使用POST
模块发送包含所有参数的Request
请求,该模块将带您进入职位描述页面。
POST
请求将类似于:
yield scrapy.Request(url="https://cantire.taleo.net/careersection/2/jobdetail.ftl", method="POST", formdata={'key':'value'}, callback=self.parse)
答案 1 :(得分:-1)
我强烈建议您使用Selenium + Scrapy。通过这种方式,您可以轻松处理点击和呈现动态内容的问题。 Helpful links here.