python 为什么数组输出是重复的?[已关闭]

rsl1atfo  于 2023-01-24  发布在  Python
关注(0)|答案(1)|浏览(119)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
上个月关门了。
Improve this question
我试图解析一个网站,我想得到两个网页的源代码。但结果,我得到了第一个网页的两次重复的代码。

import requests
from bs4 import BeautifulSoup as bs
import pandas as pd
URL_TEMPLATE = ["https://colmagzhan.kz/content/nasledie-velikih-novye-vozmoghnosti-razvitiyasovremennogoobrazovaniya/lang-kz",
                "https://colmagzhan.kz/content/provedena-razyyasnitelynaya-beseda-so-studentami-1-kursov-po-profilakt/lang-kz"]
r = [0]*len(URL_TEMPLATE)
for i in range(len(URL_TEMPLATE)):
    r[i] = requests.get(URL_TEMPLATE[0])

for i in range(len(r)):
    print(r[i].text)

这是我第一次尝试解析,我在Habr网站上找到了beautifulsoup4的使用说明,但他们只讨论了解析一个页面的可能性。我需要同时解析多个页面,我决定使用数组来完成。

zz2j4svz

zz2j4svz1#

如果您的代码不是很“Python”,即使John Gordon给了您一个答案,我们也强烈建议您按如下所示重新格式化代码:

import requests
from bs4 import BeautifulSoup as bs
import pandas as pd
URL_TEMPLATE = ["https://colmagzhan.kz/content/nasledie-velikih-novye-vozmoghnosti-razvitiyasovremennogoobrazovaniya/lang-kz",
                "https://colmagzhan.kz/content/provedena-razyyasnitelynaya-beseda-so-studentami-1-kursov-po-profilakt/lang-kz"]
r = []
for url in URL_TEMPLATE:
    r.append(requests.get(url))

for response in r:
    print(response.text)

此代码片段还修复了您的问题,即:

r[i] = requests.get(URL_TEMPLATE[0])

即使你在URL_TEMPLATE上迭代,当你在request.get函数上执行URL_TEMPLATE[0]时,你仍然调用了第一个元素。
如果你想了解for循环在Python中是如何工作的,我可以向你推荐Python wiki上的这个条目。
另外,如果你想写更多的“Python”代码,我推荐你this指南。

相关问题