(python 2.7.4)
我只想打印我所谓的url,如果它包含单词'watch‘,我已经进行了一些试验和错误,但无济于事。另外,我想知道是否有可能捕获每个视频的名称(从html),并将其分配给相应的视频,任何帮助或指针都将非常感谢。
im使用的链接是'http://thenewboston.org/list.php?cat=36‘
import urllib2
import re
def OPEN_URL(url):
req = urllib2.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3')
response = urllib2.urlopen(req)
link=response.read()
response.close()
return link
link=OPEN_URL('http://thenewboston.org/list.php?cat=36')
match=re.compile('href="(.+?)"').findall(link)
for url in match:
url='http://thenewboston.org/'+url
print url发布于 2013-05-03 03:59:22
你可以使用一个html解析器来很容易地处理这个问题。
要检查子字符串成员资格,可以使用in
'watch.php' in url
此外,漂亮的汤或html解析器将允许您获得更精确的解析匹配。
<li class="contentList">
<a href="watch.php?cat=36&number=11">11 - Editing Sequences</a>
</li>而不是所有的链接,看起来你只需要contentList中的链接??它可以很容易地使用xpath,或者漂亮的汤来查询,但是使用正则表达式会很困难吗?
发布于 2013-05-03 04:06:41
你会想看看Scrapy,这是一个用python解析和爬行的很棒的库。
也就是说,您只需扩展regexp,这样它不仅可以捕获href,还可以捕获其中的内容。所以像下面这样的东西
re.compile('href="(.+?)">(.+)</a>').findall(s)当然这不会起作用,因为它很可能会捕获很多东西,但波兰语取决于你,而manual for re就是你所需要的。
发布于 2013-05-04 10:43:12
您可以尝试htql:
import htql
for href, tx in htql.query(link, "<a (href like 'watch%')>:href, tx"):
print(href, tx)https://stackoverflow.com/questions/16346441
复制相似问题