Записать в файл из цикла for - PullRequest
       1

Записать в файл из цикла for

1 голос
/ 22 сентября 2019

Я пытаюсь записать данные из цикла for в текстовый файл, я знаю, что F.write (строка) принимает только строки, а не теги.

Я предполагаю, что мне нужно открыть файл перед тем, какцикл for начинается, но я немного растерялся после этого.Я думал, что мог бы использовать тег вместо строки, открыв файл перед началом цикла for.Любые предложения?

sauce = urllib.request.urlopen('https://blablalballa.com')
soup = bs.BeautifulSoup(sauce, 'lxml')
target = soup.find_all("span", class_=none)
F = open("data.txt", "w")

for data in target:
print(data.string)

F.write(data.string)
F.write("\n")
F.close()

F.write (data.string)

"Аргумент TypeError: write () должен быть str, а не None"

1 Ответ

1 голос
/ 23 сентября 2019

Полагаю, одной проблемой может быть none, вместо которой мы будем использовать class_=''.Другая проблема может быть data.string Нет.Вы можете использовать str() или написать для этого оператор if.

import urllib, requests
from bs4 import BeautifulSoup

sauce = urllib.request.urlopen('https://google.com')
soup = BeautifulSoup(sauce, 'lxml')
target = soup.find_all("span", class_='')
F = open("data.txt", "w")

output = ''
for data in target:
    output += str(data)

F.write(str(output))
F.write("\n")
F.close()

Выход

> <span id="gbe"></span><span id="footer"><div
> style="font-size:10pt"><div id="fll" style="margin:19px
> auto;text-align:center"><a
> href="/intl/en/ads/">Advertising Programs</a><a
> href="/services/">Business Solutions</a><a
> href="/intl/en/about.html">About Google</a></div></div><p
> style="color:#767676;font-size:8pt">© 2019 - <a
> href="/intl/en/policies/privacy/">Privacy</a> - <a
> href="/intl/en/policies/terms/">Terms</a></p></span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...