我正在尝试删除 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)

解决方法

您可以使用内置的 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)