[英]Python - Can't access some tags using LXML.HTML
Another day another question, sorry for all the posts. 改天又问一个问题,对不起所有帖子。 Yesterday user "JF Sebastian" gave me a great tip to use LXML.HTML instead of just using LXML only. 昨天,用户“ JF Sebastian”给了我一个使用LXML.HTML的绝妙技巧,而不仅仅是使用LXML。
I am using it for another feed http://feeds.bbc.co.uk/iplayer/search/tv/?q=news
today but I am just not able to access a couple of tags within the content element. 我今天将它用于另一个供稿http://feeds.bbc.co.uk/iplayer/search/tv/?q=news
,但我只是无法访问content元素中的几个标签。
Here is a sample of the feed data: 这是提要数据的示例:
<entry>
<title type="text">BBC News at Six: 06/03/2013</title>
<id>tag:feeds.bbc.co.uk,2008:PIPS:b01r27mt</id>
<updated>2013-03-07T00:20:38Z</updated>
<content type="html">
<p>
<a href="http://www.bbc.co.uk/iplayer/episode/b01r27mt/BBC_News_at_Six_06_03_2013/">
<img src="http://ichef.bbci.co.uk/programmeimages/episode/b01r27mt_150_84.jpg" alt="BBC News at Six: 06/03/2013" />
</a>
</p>
<p>
National and international news stories from the BBC News team, followed by weather.
</p>
</content>
<category term="News" />
<category term="TV" />
<link rel="alternate" href="http://www.bbc.co.uk/iplayer/episode/b01r27mt/BBC_News_at_Six_06_03_2013/" type="text/html" title="BBC News at Six: 06/03/2013">
<media:content>
<media:thumbnail url="http://ichef.bbci.co.uk/programmeimages/episode/b01r27mt_150_84.jpg" width="150" height="84" />
</media:content>
</link>
<link rel="self" href="http://feeds.bbc.co.uk/iplayer/episode/b01r27mt" type="application/atom+xml" title="06/03/2013" />
<link rel="related" href="http://www.bbc.co.uk/programmes/b007mpkn/microsite" type="text/html" title="BBC News at Six" />
</entry>
It appears that the tags within the content tags are text and don't get parsed correctly. 内容标签中的标签似乎是文本,无法正确解析。 Here is my code: 这是我的代码:
tree = html.parse("http://feeds.bbc.co.uk/iplayer/search/tv/?q=news")
for show in tree.xpath('//entry'):
select = lambda expr: show.cssselect(expr)[0]
icon_url=select("thumbnail").get('url')
print "icon_url: ", icon_url
name=select('title').text_content()
print "name: ", name
stream=select('id').text_content()
print "stream: ", stream
date=select('updated').text_content()
print "date: ", date
content=select('content').text_content()
print "content: ", content
#links = (re.compile ('\n <p>\n <a href=".+?">\n <img src="(.+?)" alt=".+?" />\n </a>\n </p>\n <p>\n ').findall(content))
#print "links: ", links
#short=links
#print "short: ", short
I want to get the second p tag with the programme description into the short variable above but I don't seem to be able to select this tag using lxml and I can't get regex to work in selecting the line I want.. 我想将带有程序描述的第二个p标签添加到上面的short变量中,但是我似乎无法使用lxml选择此标签,并且我无法让regex来选择所需的行。
Any ideas? 有任何想法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.