Merhaba ;
kodu çalıştırdığımda
" TypeError: expected string or bytes-like object "
hatası gelmekte başka sitelerde çalıştırdığımda sorunsuz olarak çalışıyro ama bu sitede hata veriyor
yardımcı olabilirseniz sevinirim…
import requests
from parsel import Selector
import re
ara=input("aranacak ürün : ").replace(" ","%20")
birles="https://www.trendyol.com/tum--urunler?q={}&siralama=1&qt={}&st={}".format(ara,ara,ara)
target_url=birles
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
}
response = requests.get(target_url, headers=headers)
print(birles)
if response.status_code == 200:
print('Bağlantı kuruldu!')
print("*" * 14)
print(" ")
selector = Selector(response.text)
REGEX = re.compile('<.*?>|&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});')
isim = selector.xpath('/html/body/div[4]/div[2]/div/div[2]/div[4]/div[2]/ul/li[1]/a/div/div/div[1]/div[1]/h3/span').get()
print(f"isim={isim}")
magaza = selector.xpath('/html/body/div[4]/div[2]/div/div[2]/div[4]/div[2]/ul/li[1]/a/div/div/div[2]/div/span[2]/span').get()
price = selector.xpath('/html/body/div[4]/div[2]/div/div[2]/div[4]/div[2]/ul/li[1]/a/div/div/div[1]/div[2]/div/div[1]/div/div/p/text()').get()
print('ÜRÜN DETAYLARI:')
print('Ürün Adı: ', REGEX.sub('', isim).strip())
print('Mağaza: ', REGEX.sub('', magaza).strip())
print('Fiyatı: ', REGEX.sub('', price).strip())
else:
print('Bağlantı kurulamadı! HTTP Kodu: ', response.status_code)
selector.xpath("...").get() işlemi None döndürüyor. xpathlarınızın doğru olup olmadığını kontrol edebilirsiniz veya (en iyisi) css selectorleri kullanabilirsiniz.