Python Scrapy抓取表没有按应有的方式工作

Python Scrapy抓取表没有按应有的方式工作,python,scrapy,Python,Scrapy,按照以下步骤,我将刮板设计如下: import scrapy 从lankatable.items导入LankatableItem 类TableScraper(scrapy.Spider): “”“TableScraper的docstring。”“” name=“table” 允许的_域=[“lankabd.com”] 起始URL=[ "http://lankabd.com/dse/stock-market/GSPFINANCE/gsp-finance-company-(孟加拉国)-有限公司/财务

按照以下步骤,我将刮板设计如下:

import scrapy
从lankatable.items导入LankatableItem
类TableScraper(scrapy.Spider):
“”“TableScraper的docstring。”“”
name=“table”
允许的_域=[“lankabd.com”]
起始URL=[
"http://lankabd.com/dse/stock-market/GSPFINANCE/gsp-finance-company-(孟加拉国)-有限公司/财务报表?公司ID=300,股票ID=287“,
]
def解析(自我,响应):
Item=LankatableItem()
Item['industry']=response.css('.portaltile2::text').extract_first().split('-')[-2]
Item['ticker']=response.css('.portalTitle.companyTitle::text').extract_first()
Item['yearEnd']=response.css('.note>font::text')。首先提取()
#行单元格中的文本
项目['summery']={}
对于响应.xpath中的tr(“./*[@id='summy']/table/tbody/tr”):
Item['summery']['title']=tr.xpath('/td[1]/text()')。extract_first().strip()
Item['summery']['y2011']=tr.xpath('/td[2]/span/text()')。先提取[u().strip())
打印项目
打印“你好,世界!”
项目如下:

#-*-编码:utf-8-*-
#在此定义您的报废物品的型号
#
#请参阅中的文档:
# http://doc.scrapy.org/en/latest/topics/items.html
进口羊瘙痒
类LankatableItem(scrapy.Item):
#在此处定义项目的字段,如:
#name=scrapy.Field()
ticker=scrapy.Field()
industry=scrapy.Field()
yearEnd=scrapy.Field()
summery=scrapy.Field()#应从页面中保留“summery”表
balance=scrapy.Field()#应保存页面中的“资产负债表”表
income=scrapy.Field()#应保存页面中的“income statemnt”表
cash=scrapy.Field()#应保存页面中的“现金流”表
但它没有抓住任何东西。不明白我的代码中缺少了什么!非常感谢您的帮助。由于
response
在内部包含
Xpath
,因此我在代码中没有使用


我使用根文件夹中的
scrapy crawl table
运行它。

xpath不工作的原因是
tbody
。你必须移除它,并检查是否得到你想要的结果

您可以在零碎的文档中阅读:

尤其是Firefox,它以在浏览器中添加
元素而闻名 桌子。另一方面,Scrapy不会修改原始页面 HTML,因此如果在中使用
,则无法提取任何数据 您的XPath表达式


例如,您是否使用
ScrapyShell
测试了CSS和XPath?另外,对于
tr.xpath('/td[1]/text()')
,您可能是指
tr.xpath('.//td[1]/text()')
,否则,您将在文档的根目录下搜索
td
元素,而不是在循环中搜索
tr
。您需要在
parse
回调方法的末尾返回(或产生)您的项目。请小心XPath中的
table/tbody/tr
部分
tbody
元素通常由您的浏览器添加(您可能在那里测试了XPath),而不是出现在原始HTML源代码中。检查tr in response.xpath(“/*[@id='summy']/table/tbody/tr”):Hi@paultrmbrth,谢谢;是的,正是
t身体
元素的罪魁祸首挡住了我的路!不管怎样,我仍然有更多的问题,在我必须去的地方。很快回来。