0

(蟒蛇2.7.4)

我只想打印我称之为 url 的内容,如果它包含“watch”这个词,我已经进行了一些试验和错误,但无济于事。另外我想知道是否可以捕获每个视频的名称(来自 html)并将其分配给相应的视频,任何帮助或指针将不胜感激。

我使用的链接是' 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
4

4 回答 4

0

您可以尝试下载 BeautifulSoup 和简单的正则表达式。

于 2013-06-13T12:07:41.203 回答
0

您可以使用漂亮的汤之类的 html 解析器来轻松处理此问题。

检查您可以使用的子字符串成员资格in

'watch.php' in url

美丽的汤或 html 解析器也可以让您获得更精确的解析匹配

<li class="contentList">
  <a href="watch.php?cat=36&amp;number=11">11 - Editing Sequences</a>
</li>

而不是所有链接,看起来您只想要contentList's? 内的链接?哪个可以使用 xpath 或 beautifulsoup 轻松查询,但使用正则表达式可能很困难?

于 2013-05-02T19:59:22.393 回答
0

你可以试试html:

import htql
for href, tx in htql.query(link, "<a (href like 'watch%')>:href, tx"):
  print(href, tx)
于 2013-05-04T02:43:12.237 回答
0

你会想看看Scrapy,它是一个很棒的库,在使用 python 进行解析和爬行时。

话虽如此,您只需要扩展您的正则表达式,以便它不仅可以捕获 href,还可以捕获 . 所以有些东西

re.compile('href="(.+?)">(.+)</a>').findall(s)

当然,这不会起作用,因为它很可能会捕捉到很多东西,但是抛光取决于您,您只需要手动重新设置

于 2013-05-02T20:06:40.850 回答