解析多个URL并提取数据

0 投票
1 回答
1579 浏览
提问于 2025-04-18 13:17
  1. 我需要解析一个HTML页面,获取所有符合我要求的链接。
  2. 现在,我需要解析每个提取出来的链接,以获取我想要的数据,如果页面标题符合某个条件,就根据它们的名字保存到多个文件中。我已经用以下方式完成了第一部分。

    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标签。

希望这能帮到你。

撰写回答