Невозможно получить количество строк в таблице HTML с помощью scrapy.Невозможно получить количество строк в таблице HTML с помощью scrapy
У меня есть HTML-документ, как ниже:
<TITLE>Title of Mbean</TITLE>
</HEAD>
<BODY>
<TABLE WIDTH="100%">
<TR>
<TD ALIGN="left"><H2>Array View</H2></TD>
<TD ALIGN="right" VALIGN="top">[JDMK5.0_r16]</TD>
</TR></TABLE>
<UL type="disc"><LI><B>MBean Name:</B> Name of MBean</LI>
<LI><B>MBean Attribute:</B> product list</LI>
<LI><B>Array of:</B> java.lang.String</LI>
</UL>
<TABLE WIDTH="100%"><TR>
<TD ALIGN="LEFT"><A HREF="Object name">Back to MBean View</A></TD>
<TD ALIGN="RIGHT"><A HREF="/">Back to Agent View</A></TD>
</TR></TABLE>
<HR>
<A NAME="Top"></A>
<TABLE ALIGN="center" BORDER="1" CELLPADDING="3">
<TR>
<TH WIDTH="10%"> Element at </TH>
<TH WIDTH="7%"> Access </TH>
<TH WIDTH="35%"> Value </TH>
</TR>
<TR>
<TD ALIGN="center">0</TD><TD ALIGN="center">RO</TD>
<TD>this is the value</TD>
</TR>
<TR>
<TD ALIGN="center">0</TD><TD ALIGN="center">RO</TD>
<TD>this is the second value</TD>
</TR>
</TABLE>
</HR>
</BODY>
</HTML>
и когда я указать следующее, чтобы попытаться и количество строк в таблице, используя следующий XPath, используя Scrapy и ничего возвращается:
hxs = Selector(response)
loader = XPathItemLoader(WebscraperItem(), selector=hxs)
loader.add_xpath('tablecount', 'count(/HTML/BODY/HR/TABLE/TR)')
yield loader.load_item()
Я пробовал xpath в Oxygen и вижу, что xpath работает нормально, но только не в пределах scrapy, есть ли у кого-нибудь идеи, где я ошибаюсь?
Не доверяйте инструментов браузера, так как браузер фиксирует сломанный HTML добавление/удаление тегов и XPath инструменты дают полный путь, который не рекомендуется. Лучше просто создать выражение с элементами, которые вам нужны/нужны, точно так же, как указал Гай в ответе ниже. – Rolando