首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xpath在chrome dev工具中工作,但在scrapy中不起作用。

xpath在chrome dev工具中工作,但在scrapy中不起作用。
EN

Stack Overflow用户
提问于 2014-10-23 07:04:46
回答 1查看 679关注 0票数 1

我正在尝试使用这个xpath来刮这个url

代码语言:javascript
复制
//*[@class="cnnResultItem"]

它在chrome dev工具控制台中工作,但是刮伤蜘蛛的结果是[]。

我已经通过了详尽的测试,测试了所有的节点,直到我想要的节点,所有的一切都达到并包括了//*[@id="mixedresults"]。在此节点之后的每一次都会产生[]。

我的这里//*[@class="item-title"]也有同样的问题。此节点之前的所有内容都正常工作,该节点之后的所有内容以及包含该节点的所有内容都会失败。

代码语言:javascript
复制
2014-10-23 03:08:55-0400 [article_spider] INFO: Spider opened
2014-10-23 03:08:55-0400 [scrapy] DEBUG: Telnet console listening on 0.0.0.0:602
3
2014-10-23 03:08:55-0400 [scrapy] DEBUG: Web service listening on 0.0.0.0:6080
2014-10-23 03:08:55-0400 [article_spider] DEBUG: Crawled (200) <GET http://www.c
dc.gov/media/archives.htm> (referer: None)
***base_elem =  ScraperElem object
***base_elem.x_path =  //*[@class="item-title"]
***Found base_objects =  []
2014-10-23 03:08:55-0400 [article_spider] ERROR: No base objects found!
2014-10-23 03:08:55-0400 [article_spider] INFO: Closing spider (finished)
2014-10-23 03:08:55-0400 [article_spider] INFO: Dumping Scrapy stats:
        {'downloader/request_bytes': 210,
         'downloader/request_count': 1,
         'downloader/request_method_count/GET': 1,
         'downloader/response_bytes': 12999,
         'downloader/response_count': 1,
         'downloader/response_status_count/200': 1,
         'finish_reason': 'finished',
         'finish_time': datetime.datetime(2014, 10, 23, 7, 8, 55, 225000),
         'log_count/DEBUG': 7,
         'log_count/ERROR': 1,
         'log_count/INFO': 6,
         'response_received_count': 1,
         'scheduler/dequeued': 1,
         'scheduler/dequeued/memory': 1,
         'scheduler/enqueued': 1,
         'scheduler/enqueued/memory': 1,
         'start_time': datetime.datetime(2014, 10, 23, 7, 8, 55, 53000)}
2014-10-23 03:08:55-0400 [article_spider] INFO: Spider closed (finished)

如果能知道为什么会发生这种情况,我们将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-23 07:21:30

您发布的url最初是空白的,并使用Javascript填充数据。Scrapy不支持动态页面,您需要找出javascript请求的内容并对其进行解析。

乍一看,您会想要查询和刮掉http://searchapp.cnn.com/cnn-search/query.jsp?query=ebola&ignore=mixed|article|video&start=1&npp=10|10|20&s=all&type=all&sortBy=relevance&primaryType=mixed&csiID=csi1

结果似乎是在json中,这实际上更容易解析。您发布的CDC站点也包含Javascript。你可以在Chrome工具中禁用JS,它将使调试更容易,因为您将看到scrapy所看到的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26522859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档