Запустите скрипт Python и выведите список URL-адресов в формате txt

#python

#питон

Вопрос:

У меня есть скрипт на Python для очистки некоторых URL-адресов. URL-адреса представлены в виде списка в текстовом файле.

Скрипт на Python (только соответствующие части) выглядит следующим образом:

 import urllib2
from bs4 import BeautifulSoup
quote_page = 'https://www.example.com/post/1245'

# rest of the code is here

print quote_page
print url
print title
print description
print actors
print director
  

Я хотел бы запустить этот скрипт для нескольких URL-адресов в текстовом файле и вывести в один текстовый файл.

Есть идеи, как я могу запустить это для своих URL-адресов в текстовом файле?

Ответ №1:

Скорее всего, вы захотите использовать инструкцию Python with (введенную в PEP 343) и встроенную функцию open():

 # Python 2
import urllib2
import BeautifulSoup

# Python 3
# import urllib3
# from bs4 import BeautifulSoup

# Python 2.6  and Python 3
with open('urls.txt','r') as url_file, open('output.txt', 'w') as output_file:

    url_list = url_file.readlines()

    for url_item in url_list:

        # quote_page = 'https://www.example.com/post/1245'
        quote_page = url_item

        # rest of the code is here

        # Python 2 and 3
        output_file.write(quote_page)
        output_file.write(url)
        output_file.write(title)
        output_file.write(description)
        output_file.write(actors)
        output_file.write(director)
        output_file.write('n')
  

В этом случае мы:

  1. open() файл обрабатывает ( url_file , output_file ) наши входные и выходные текстовые файлы ( 'urls.txt' , 'output.txt' ) одновременно (используя 'r' для чтения и 'w' для записи, соответственно).

  2. Используйте with инструкцию, чтобы автоматически закрыть эти файлы после того, как мы полностью обработаем наши URL-адреса. Обычно нам нужно было бы выдавать отдельные команды, например, url_file.close() и output_file.close() (например, на шаге 5).

  3. Поместите наши URL-адреса в список ( url_list = url_file.readlines() ).

  4. Просмотрите наш список URL-адресов и write() данные, которые мы хотим добавить в наш output_file .

  5. close() оба наших файла автоматически (см. Шаг 2).

Обратите внимание, что для простого добавления данных к существующему, output_file вы, вероятно, захотите использовать 'a' (режим добавления), а не 'w' (режим записи). Так, например, open('output.txt', 'w') as output_file стало бы open('output.txt', 'a') as output_file . Это важно, потому что 'w' (режим записи) приведет к усечению файла, если файл уже существует (т. е. вы потеряете свои исходные данные).