首页 > 解决方案 > 我正在尝试删除 python 中以 / 开头的文本行

问题描述

我正在尝试抓取一个网站,然后将链接保存到文本文件中。在文本文件中,我想删除任何不以“/”开头的行。我怎么能那样做?这是我到目前为止所拥有的一切:

import requests
from bs4 import BeautifulSoup
page = requests.get("https://wiki.stardewvalley.net/Stardew_Valley_Wiki")
soup = BeautifulSoup(page.content, 'html.parser')

wikilinks = []
for con in soup.find_all('div', class_="mainmenuwrapper"):
    for links in soup.find_all('a', href=True):
        if links.text:
            wikilinks.append(links['href'])

# print(wikilinks)


with open('./scrapeNews/output.txt', 'w') as f:
    for item in wikilinks:
        f.write("%s\n" % item)

标签: python-3.xbeautifulsoupfile-processing

解决方案


您可以使用内置startswith()方法检查链接是否以“/”开头。但是,由于除了链接之外还有其他信息,您可以过滤以仅编写以“http”开头的链接,而不是仅过滤“/”。

...
with open("./scrapeNews/output.txt", "w") as f:
    for item in wikilinks:
        if not str(item).startswith("http"):
            continue
        f.write("%s\n" % item)

推荐阅读