Добавить разрыв строки для каждого элемента в списке, элементы были найдены с помощью Beautifulsoup - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь найти все ссылки на фотографии на веб-сайте и использую для этого BeautifulSoup. Вот мои коды:

import requests
from bs4 import BeautifulSoup as bs

url = "http://cupp.cyberport.hk/zh_TW/front_programmes/index"
webpage = requests.get(url)
soup = bs(webpage.content, "html.parser")
images = []
for img in soup.findAll('img'):
   images.append(img.get('src'))
   with open("photo_links.txt", "w") as text_file:
      text_file.write(str(images))

И результаты:

['https://www.cyberport.hk/images/logo.jpg','https://www.cyberport.hk/img/weather_icon/black/54.png','https://www.cyberport.hk/images/facebook.jpg', 'https://www.cyberport.hk/images/twitter.jpg','https://www.cyberport.hk/images/linkin.jpg', 'http://cupp.cyberport.hk/files/general_content/upload/12/hkcityu_logo.jpg','http://cupp.cyberport.hk/files/general_content/upload/13/hkbu_logo.jpg'] 

Все элементы в списке были напечатаны в одну строку в текстовом файле.

Я хочу, чтобы каждый элемент был разделен символом "\ n"

, как это

['https://www.cyberport.hk/images/logo.jpg',
'https://www.cyberport.hk/img/weather_icon/black/54.png',
'https://www.cyberport.hk/images/facebook.jpg', 
'https://www.cyberport.hk/images/twitter.jpg',
'https://www.cyberport.hk/images/linkin.jpg', 
'http://cupp.cyberport.hk/files/general_content/upload/12/hkcityu_logo.jpg',
'http://cupp.cyberport.hk/files/general_content/upload/13/hkbu_logo.jpg'] 

Как я могу изменить код, чтобы получить желаемые результаты?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 01 мая 2020

Вы можете сделать это:

import requests
from bs4 import BeautifulSoup as bs

url = "http://cupp.cyberport.hk/zh_TW/front_programmes/index"
webpage = requests.get(url)
soup = bs(webpage.content, "html.parser")
images = []
for img in soup.findAll('img'):
   images.append(img.get('src'))

url_list = '",\n"'.join(images)
with open("../test_files/photo_links.txt", "w") as text_file:
   text_file.write(f'"{url_list}",')

'\n'.join(images) создает строку элементов в images, к которой присоединяется \n.

0 голосов
/ 01 мая 2020

Вы можете достичь этого, используя форматирование строки. Просто вставьте элементы составного списка с ',\n' в 2 квадратных скобках:

text_file.write(f"[{',\n'.join(images)}]")
0 голосов
/ 01 мая 2020

Не могли бы вы попробовать приведенное ниже решение?

изменить приведенный ниже код

text_file.write(str(images))

на приведенный ниже код

text_file.write(str(images)+'\n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...