python中用xpath匹配结果

huanxisha88 2011-06-03 02:52:37

<tr class="">
<td height="31" align="center">
<a href="../booklist?nodeId=6891829&fee=0&order=1">【玄幻奇幻】</a>
</td>
<td class="act_list_slh">
<a href="bookDetail?bid=549843" target="_blank" title="斗破苍穹">斗破苍穹</a>
</td>
<td class="act_list_slh">
<a href="bookDetail?bid=549843" target="_blank" title="第一千五百二十九章 炼制傀儡">第一千五百二十九章 ...</a>
</td>
<td align="left" title="天蚕土豆" class="act_list_slh"> 天蚕土豆</td>
<td align="center"> 2011-06-01</td>
<td align="center" class="act_list_slh"> 连载中</td> </tr>


novel表示上面的字符串,
如果我要提取【玄幻奇幻】
这样匹配可以吗:novel.xpath("//td")[0].textContent()

结果貌似不正确,555~~~求高手指导啊!!
...全文
480 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanxisha88 2011-06-03
  • 打赏
  • 举报
回复
你的话让我又羞又愧,的确非常有道理。
确实常常被一些表面现象弄混头脑,谢谢你的提醒。
问题初步解决,继续锻炼吧!
iambic 2011-06-03
  • 打赏
  • 举报
回复
晕死,一个问题不要发两个风马牛不相及的帖子……

对于这种这种找不到对象的帖子,你先仔细阅读异常栈(必须!不会阅读异常的人永远也写不好代码)。找到出错的哪行代码。你这个代码里估计是threading.thread吧。出错的信息意思是threading这个module没有thread属性(这一点你应该自己分析出来,不需要别人帮助)。如果一个对象没有某个属性,要不然是你用错了对象,要不然是你用错了属性。这里应该是你自己用错了属性。自己打印下dir(threading),看下这个对象都有什么属性。是不是你自己打错字了。检查后应该能发现确实没有thread,但是有一个Thread。自己再看看文档,仔细检查下代码和示范代码。这种问题都是自己能解决的,尽量不要发帖。否则对你帮助不大。

最后,你自己看下这个问题的真正原因,再看下你发的帖子和标题,根本不相关。一个人编程的能力很大程度上取决于解决问题的能力,解决问题的能力很大程度上取决于识别问题的能力。多锻炼下吧,别被肤浅的现象所困扰。
iambic 2011-06-03
  • 打赏
  • 举报
回复
贴能直接运行的最简代码。
机器上没有django。而且django和xml也没任何关系,把所有django相关的代码都去掉。
http请求和具体问题也没任何关系,把代码里http相关的都去掉,然后把xml的正文直接嵌到代码里。如果xml正文太长,把没用的东西删掉(但要保证依旧是合法的xml)。

反正半分钟之内运行不起来的代码我是不会花时间去看的。

另一方面,把问题最简化也是你自己解决问题应该做的事情。你的代码越少,问题就越明显。从三行代码里找出问题,和在三百行代码里找到问题,哪个容易?把不想关的东西咔嚓掉,是很有用的一个技巧,特别是在面对自己不熟悉的代码或者技术的时候。
把http请求去掉也节省了网络访问的时间,当然也节省了测试和定位问题所花的时间。
huanxisha88 2011-06-03
  • 打赏
  • 举报
回复
在pycharm里面写的
代码如下:运行出现的错误您也看到了,在另外一个帖子里

# Create your views here.
import re
import urllib2
from django.http import HttpResponse
from lxml import etree
import lxml.html as HTML
import math
import threading
from models import readModel
class getDetail(threading.thread):
def __int__(self,novel):
threading.thread.__init__(self)
self.novel=novel
def run(self):
#rm=readModel()
novelClass=u''+self.novel.xpath("//td")[0].textContent()
#rm.novelClass=novelClass
#rm.save()
print novelClass




def getFromLib(requet):
libUrl='http://read.10086.cn/booklist?nodeId=0&fee=0&order=1&view=1&page=1'
libContent=urllib2.urlopen(libUrl).read()
#dom=HTML.document_fromstring(libContent)
# novels=dom.xpath("//")
novels=re.split(r'<tr class=',libContent)
print len(novels)

for i in len(novels):
novel=novels[i+1]
getDetail(novel)
t = getDetail(novel)
t.setDaemon(True)
t.start()
while threading.activeCount() > 4:
pass

return HttpResponse(libContent)




iambic 2011-06-03
  • 打赏
  • 举报
回复
贴你的python代码。完整能运行的。

37,717

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧