Я пытаюсь проанализировать список URL-адресов, сохраненных в формате UTF8 и именованных ссылок в папке ожидания Python. Один из примеров:
'https://www.safirstores.com/%D8%A2%D8%B1%D8%A7%DB%8C%D8%B4%DB%8C#/availability=1/sort=p.sort_order/order=ASC/limit=32/page=44'
, но когда я пытаюсь запустить свой код, он будет анализировать информацию из первой части URL-адреса каждый раз. Это похоже на синтаксический анализ следующего URL:
'https://www.safirstores.com/%D8%A2%D8%B1%D8%A7%DB%8C%D8%B4%DB%8C#'
обратите внимание, что в конце URL стоит #. и я думаю, что это # мешает моим URL измениться. Я не знаю почему.
вот мой полный код:
import requests
import urllib.request
from bs4 import BeautifulSoup
import csv
with open('links.txt','r', encoding="utf8") as f:
urls = f.read().split()
with open('promo.csv', 'w', newline='', encoding='utf-8') as f_output:
csv_output = csv.writer(f_output)
csv_output.writerow(['name', 'links', 'price'])
for url in urls:
try:
print(url)
source = requests.get(url).text
soup = BeautifulSoup(source, 'lxml')
divs = soup.find_all('div', class_='caption')
if divs:
for div in divs:
price = div.find('p', {'class':'price'}).text.strip()
print(price)
name = div.find('h4', {'class':'name'}).text.strip()
print(name)
links = div.find('a')['href']
print(links)
print()
csv_output.writerow([name, links, price])
else:
print("Finished")
break
except Exception as e:
print(e)
, и мой список URL выглядит следующим образом:
https://www.safirstores.com/آرایشی#/availability=1/sort=p.sort_order/order=ASC/limit=32/page=1
https://www.safirstores.com/آرایشی#/availability=1/sort=p.sort_order/order=ASC/limit=32/page=2
https://www.safirstores.com/آرایشی#/availability=1/sort=p.sort_order/order=ASC/limit=32/page=3
Что я должен сделать, чтобы предотвратить такую проблему?
Заранее спасибо за ваше время.