Чтобы получить URL-адреса из текстового файла, вы можете open
файл (точно так же, как вы сделали для записи) в режиме "r"
и выполнять итерации по его строке.
Например, допустим, у вас есть следующий файл URL с именем urls.txt :
http://www.google.com
http://www.yahoo.com
Чтобы получить URL-адреса и выполнить их итерацию, выполните следующее:
out_filename = "prices.csv"
headers = "availableOffers,otherpricess,currentprice,page_url \n"
with open(out_filename, "w") as fw:
fw.write(headers)
with open("urls.txt", "r") as fr:
for url in map(lambda x: x.strip(), fr.readlines()): # the strip is to remove the trailing '\n'
print(url)
uClient = uReq(url)
page_soup = soup(uClient.read(), "html.parser")
# write the rest logic here
# ...
# write to the output file
fw.write(availableOffers + ", " + otherpricess + ", " + currentprice + ", " + page_url + "\n")
Относительно вашего второго вопроса, вы можете проверить, что page_soup.find("span", {"class": "price"})
не является None, и, если это так, извлечь текст. Например:
otherpricess = page_soup.find("span", {"class": "price"}).text.replace("$", "") if page_soup.find("span", {"class": "price"}) else ""
# in case there is no value, otherpricess will be empty string but you can change it to any other value.