从 Web 目录而不是单个 URL 读取



我有一个python脚本,我正在使用在Beautiful Soup的帮助下解析URL中的html元素。

我现在想解析目录中的所有 html 文件,而不是选择每个文件并逐个执行。经过一个周末的修改脚本,我遇到了一堵砖墙!

我已经玩过os.walk来帮助我,但我正在努力与我当前的脚本集成。我认为应该有办法简单地编写一个循环并将我的输入从文件更改为目录?但这是否意味着我不能再使用urllib因为我的 url 现在是一个文件列表?

这是我脚本的开始。目录中每个文件中的所有解析元素都是相同的,因此不需要更改任何其他内容。

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
my_url = 'http://www.mywebsite.com/src_files/abc1.html'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

预期结果应该就像我单独对目录中的每个 html 文件运行当前脚本一样。

是的,您不再需要urllib,因为您想解析目录中保存的HTML文件(而不是从远程HTTP服务器获取HTML页面(。

要查找目录中的所有 HTML 文件,您需要使用glob模块。

例:

from bs4 import BeautifulSoup
from glob import glob
# returns list of all .html files in directory.
htmlFilesList = glob('./*.html') 
for i, htmlFile in enumerate(htmlFilesList):
    saved_html = open(htmlFile, 'r', encoding="utf-8")
    soup = BeautifulSoup(saved_html, 'html.parser')
    # Close opened file
    saved_html.close()

最新更新