У меня есть куча неиспользованных ключей Steam, и я пытаюсь написать небольшой скрипт на Python, чтобы найти лучшие цены на каждую игру, которой я владею, на некоторых из самых дешевых сайтов Steam.На данный момент я попробовал в качестве примера найти лучшие цены на g2a.Скрипт работает почти нормально (да, иногда возвращение единой цены точно не возвращает цену для моей игры, но это не главная проблема).Проблема в том, что мне кажется, что я не могу правильно искать веб-страницу, когда часть имени содержит специальные символы.Я пытался удалить специальные символы, но проблема все еще есть.Любые советы?
Это мой сценарий:
import pandas as pd
import sys
from urllib.request import urlopen, Request
from bs4 import BeautifulSoup
import urllib.parse
carica = pd.read_csv("list.csv")
rows=0
pageh = urlopen(Request('https://www.google.com'))
while rows<len(carica)-1:
#while rows<3:
rows=rows+1
filename = (carica.values[rows,0])
filename = filename.replace(",","")
filename = filename.replace(" ","%20")
filename = filename.replace("'","")
if filename is None:filename='Demo'
quote_page = ('https://www.g2a.com/en-us/search?query='+filename)
try:page = urlopen(Request(quote_page, headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30'}))
except IOError: page=pageh
soup = BeautifulSoup(page,'html.parser')
namea = carica.values[rows,0]
pricea = soup.find(class_='Card__price-cost price')
if pricea is None:pricea.text='non trovato'
testo='\x1b[0m' + carica.values[rows,0] + '\x1b[0m'
print(testo, '-->', pricea.text)
Его версия со списком игр находится здесь: https://repl.it/@PaoloVeronesi/g2a-prices