2015-10-21 2 views
0

Я сломаю веб-сайт, и все выглядит отлично, за исключением того, что я не могу сохранить ссылки на веб-сайте для переменных, а затем в текстовый файл.Значения переменных Python автоматически меняются

import requests 
from bs4 import BeautifulSoup 
r = requests.get("https://website.com/list/") 
soup = BeautifulSoup(r.content) 
file = open("newtext.txt", "w") 
for link in soup.find_all("a"): 
    g_data = link.get("href") 
    print g_data 

выход совершенен до этого сценария

но если я пытаюсь напечатать g_data еще раз после того, как цикл выполняется, все прошло ..

print g_data 

только одна ссылка ничего не выводит. Я делаю что-то неправильно?

PS: Я пробовал это на разных сайтах, и все выходы идеально без ошибок.

+0

вы пробовали распечатав всю r.content и посмотреть, что выглядит как исходные данные? – lionel319

+0

Что вы пытаетесь достичь точно? – skyline75489

+0

@ lionel319 Да, сырые данные выглядят нормально. Я могу даже распечатать ссылки в цикле без каких-либо ошибок. Но когда я пытаюсь распечатать переменную еще раз сразу после того, как цикл for выполняется, его ушли только некоторые значения мусора. Каковы шансы переменная автоматически изменяется? –

ответ

3

В коде, который вы опубликовали, g_data указывает только на один href за раз. Если вы хотите, чтобы собрать все из href атрибутов, вы должны сделать это list:

g_data = [] for link in soup.find_all("a"): g_data.append(link.get("href"))

+0

Спасибо, человек ... Это решило проблему. Я знал, что делаю что-то неправильно. –

+0

Нет проблем. Несколько раз он просто берет другой набор глаз. –

+0

У меня была эта проблема в моем сознании, но у меня были другие веб-сайты, которые работают отлично. Поэтому я искал все свои мысли в дизайне веб-сайта, что они что-то сделали, чтобы прекратить ломать. –

Смежные вопросы