【发布时间】:2014-11-18 02:30:43
【问题描述】:
我正在尝试使用 scrapy 抓取此页面 https://www.stickyguide.com/dispensaries/leaf-lab/。 很长一段时间以来,我都无法从该页面抓取评论。如果有人有处理 Ajax 或 Javascript 的经验,请分享您的想法。
1) 我可以轻松获得 Xpath 进行审核:
response.xpath('//*[@id="reviews_section"]/div')
但是,我相信页面的评论部分是由 javascript 加载的。每次爬这个页面的时候,我得到的Xpath的值如下:
<Selector xpath='//*[@id="reviews_section"]/div' data=u'<div id="loader">\n<div class="loader"></'>
如果我可以使用任何方法来确保在加载 javascript 之前抓取 scrapy? 上网查了一下方法,使用selenium包可能是一种解决方案,但可能效率不高。
2) 我遇到的另一个问题是我只想从药房抓取数据。我需要从 Review 模块旁边的下拉菜单中选择“VIEW: Dispensary Only”选项。我查看了 HTML 代码,它往往是一个 Ajax 对象。
<select id="sort" name="sort" onchange="new Ajax.Request('/update_reviews_section/2487', {asynchronous:true, evalScripts:true, parameters:'sort_by=' + $('sort').value + '&authenticity_token=' + encodeURIComponent('69BgJpnnj0tx/0lYwjIk75iFj0/l2R9EDj1No1FJX9o=')})">
如果我可以使用任何方法来请求选项“VIEW:Dispensary Only”的内容? 我在stackoverflow上尝试了很多方法,但仍然无法解决。
提前谢谢你
【问题讨论】:
标签: javascript ajax xpath scrapy scrapy-spider