从网络目录而不是单个目录读取 url
Reading from a web directory instead of single 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 页面)。
要在您需要使用 glob
模块的目录中查找所有 HTML 文件。
示例:
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()
我有一个 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 页面)。
要在您需要使用 glob
模块的目录中查找所有 HTML 文件。
示例:
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()