Чтение из веб-каталога вместо одного URL - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть скрипт Python, который я использую для анализа html-элементов из URL-адреса с помощью Beautiful Soup.

Теперь я хочу проанализировать все 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-файла в каталоге по отдельности.

1 Ответ

0 голосов
/ 29 апреля 2019

Да, вам больше не нужно urllib, так как вы хотите проанализировать сохраненные HTML-файлы в каталоге (без выборки HTML-страниц с удаленного HTTP-сервера).

Чтобы найти все файлы 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()
...