解析多个URL并提取数据
- 我需要解析一个HTML页面,获取所有符合我要求的链接。
现在,我需要解析每个提取出来的链接,以获取我想要的数据,如果页面标题符合某个条件,就根据它们的名字保存到多个文件中。我已经用以下方式完成了第一部分。
pattern=re.compile(r'''class="topline"><A href="(.*?)"''') da = pattern.search(web_page) da = pattern.findall(soup1) col_width = max(len(word) for row in da for word in row) for row in da: if "some string" in row.upper(): bb = "".join(row.ljust(col_width)) print >> links, bb
我非常感谢任何帮助。谢谢。
1 个回答
2
首先,不要用正则表达式来解析HTML。你其实已经在问题中标记了BeautifulSoup
这个标签,但你还是在用正则表达式。
下面是如何获取链接、跟踪它们并检查title
的方法:
from urllib2 import urlopen
from bs4 import BeautifulSoup
URL = "url here"
soup = BeautifulSoup(urlopen(URL))
links = soup.select('.topline > a')
for a in links:
link = link.get('href')
if link:
# follow link
link_soup = BeautifulSoup(urlopen(link))
title = link_soup.find('title')
# check title
.topline > a
CSS选择器可以帮你找到任何带有topline
类的标签,并获取它下面的a
标签。
希望这能帮到你。