问题描述
我正在尝试抓取网站,然后将链接保存到文本文件。在文本文件中,我想删除任何不以“/”开头的行。我怎么能那样做? 这是我目前所拥有的一切:
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)