Python-Scrapy/可以找到带有@class但不带有@id的Xpath查询

Python-Scrapy/可以找到带有@class但不带有@id的Xpath查询,python,xpath,scrapy,Python,Xpath,Scrapy,我正试图通过以下指南学习Scrapy for Python:。我已经按照说明进行了操作,我能够通过scrapy shell手动刮取一些数据,但是我无法找到我想要的数据。当我尝试针对以下div类时: <div class="overthrow table_container" id="div_pbp"> 然后它工作了,我得到了 [<Selector xpath='//div[@class="overthrow table_container"]' data=u'<div

我正试图通过以下指南学习Scrapy for Python:。我已经按照说明进行了操作,我能够通过scrapy shell手动刮取一些数据,但是我无法找到我想要的数据。当我尝试针对以下div类时:

<div class="overthrow table_container" id="div_pbp">
然后它工作了,我得到了

[<Selector xpath='//div[@class="overthrow table_container"]' data=u'<div class="overthrow table_container" i'>]
我得到了空括号[]作为回应

Edit1:Im使用windows 10、Python版本2.7.13、Scrapy版本1.4.0 我的疑问是否表述错误,或者是否有其他解释

Edit2:我注意到我在粘壳上的输出被切断了。使用//div查看所有div时,我得到以下输出:
这可能是问题所在吗?你怎么能让scrapy得到整个选择器而不切断它

编辑3:另一个例子:
在网站上使用开发工具时,我看到选择器应该是:

当我通过以下方式访问它时:

response.xpath('//div[@id=“all\u game\u info”]')

然后我得到:

[]

因此,它切下了一部分。当我现在尝试像这样使用类变量进行搜索时

response.xpath('//div[@class=“table_wra”]')

response.xpath('//div[@class=“table\u wrapper columns”]')

,然后我得到空括号[]


顺便说一句:这都是些鸡毛蒜皮的东西

我终于找到了解决问题的办法,并复制了你面临的问题。我既不使用Scrapy shell,也不使用IPython,因此您会发现这会略有不同

我使用
请求
库获取页面内容,然后使用
scrapy
HtmlResponse
对象使自己能够使用xpath表达式搜索页面

我的经历和你的一样

>>> url = 'http://www.pro-football-reference.com/boxscores/201409040sea.htm'
>>> from scrapy.selector import Selector
>>> import requests
>>> page = requests.get(url).content
>>> response = HtmlResponse(url,body=page)
>>> response.xpath('//div[@class="overthrow table_container"]')
[<Selector xpath='//div[@class="overthrow table_container"]' data='<div class="overthrow table_container" i'>]
>>> response.xpath('//div[@id="div_pbp"]')
[]

无论何时您提供代码,如本问题中的HTML,请您在问题中以文本而不是图像的形式提供给我们,以便任何想要尝试各种可能性的人都可以这样做。现在将其添加为文本两个XPath都会为我产生相同的结果。你能编辑你的问题并添加一些关于你的环境(版本,操作系统)的信息吗?我使用Python2.7.11和Scrapy1.4.0进行了测试,如果您想在上回复某人,则需要使用“@”。例如,要回复我,请使用@BillBell。您的XPath也会为我生成相同的结果。必须是“其他东西”,很可能在代码的另一部分。谢谢你的回答!你对我在编辑部分提出的其他问题(剪贴画)有什么建议吗?提前谢谢!谢谢遗憾的是,输出仍然被切断(字面意思是:第二部分不在选择器中,而不仅仅是一行中)。有什么建议吗?或者我应该为这个问题再问一个问题吗?再次感谢!你帮了大忙!如果你这样做可能会更好。好的,清晰的,新的开始。如果您愿意,请在提交问题后告诉我。
response.xpath('//div[@id="div_pbp"]')
>>> url = 'http://www.pro-football-reference.com/boxscores/201409040sea.htm'
>>> from scrapy.selector import Selector
>>> import requests
>>> page = requests.get(url).content
>>> response = HtmlResponse(url,body=page)
>>> response.xpath('//div[@class="overthrow table_container"]')
[<Selector xpath='//div[@class="overthrow table_container"]' data='<div class="overthrow table_container" i'>]
>>> response.xpath('//div[@id="div_pbp"]')
[]
enormousOutput = <statement>
open('temp.txt', 'w').write(enormousOutput)