tekrardan merhaba
elimde bir yazı var ve ben bu yazıdan bazı verileri çekmek istiyorum.- yaklaşık 15 bin tane “12313123” gibi sayı-
bunu nasıl yaparım?
veriye ulaşıyorum.
ama içinde her /asdasd/123123123 gibi a href varsa 1231231 çekmek istiyorum nasıl yapabilirim?
sayfanın statik kodlarına ulaştım da binlerce satır açamıyorum notepad ile falan
yani python ile açarken sıkıntı çıkar mı nasıl açarım nasıl o 12313 sayılarını ekleyebilirim
yapılacak şey basit
kaynaktaki her /asdasd/ sonrasındaki 11 rakamı bir listeye ekle.
nasıl yaparım
regex yani düzenli ifadeler denilen yapıyı kullanabilirsiniz. Biraz karışıktır ancak, çok kısa ifadelerle istediğinizi elde edebilirsiniz. Örneğin sizin ifadeniz için bir “a href” yazalım
impor re
link = "<a href = '/asdasd/123231123'>Link</a>"
ifade = "<a href = '.+/([0-9]+)'>.+</a>"
sonuc = re.search(ifade,link)
print("Bulunan sonuc: {}".format(sonuc.group(1)))
arkadaşlar verdiğiniz şeyi denedim olmadı hata verdi
benim elimdeki yazı çok büyük
onbinlerce satır sanırsam python açmıyor. I/O error veriyor yada başka bir hata veriyor.
nasıl düzeltebilirim
ya arkadaşlar elimde bir dosya var dosyayı açamıyorum python ile
bende internetten çekiyorum o zamanda işlemiyor.
yardım edebilecek var mı özelden?
Microsoft Windows [Version 10.0.17134.345]
(c) 2018 Microsoft Corporation. Tüm hakları saklıdır.
C:\Users\emre>py
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:05:16) [MSC v.1915 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
dosya = open(r"C:\Users\emre\Desktop\abc.html")
import re
ifade = “.+”
sonuc = re.search(dosya,ifade)
Traceback (most recent call last):
File “”, line 1, in
File “C:\Users\emre\AppData\Local\Programs\Python\Python37-32\lib\re.py”, line 183, in search
return _compile(pattern, flags).search(string)
File “C:\Users\emre\AppData\Local\Programs\Python\Python37-32\lib\re.py”, line 285, in _compile
raise TypeError(“first argument must be string or compiled pattern”)
TypeError: first argument must be string or compiled pattern
for i in dosya.split(“/”):
… if i.isdigit():
… print(i)
…
Traceback (most recent call last):
File “”, line 1, in
AttributeError: ‘_io.TextIOWrapper’ object has no attribute ‘split’
bu arada ifade a href vardı yansımıyor ama
şöyleydi:
< a href = ‘.+/([0-9]+)’>.+
Microsoft Windows [Version 10.0.17134.345]
(c) 2018 Microsoft Corporation. Tüm hakları saklıdır.
C:\Users\emre>py
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:05:16) [MSC v.1915 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
Traceback (most recent call last):
File “”, line 1, in
File “C:\Users\emre\AppData\Local\Programs\Python\Python37-32\lib\encodings\cp1254.py”, line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: ‘charmap’ codec can’t decode byte 0x9e in position 1310687: character maps to
amaç : http://www.incisozluk.com.tr/u/crossfire/son-entry/
şuradaki entry değerlerini çekmek kaynak koddaki /e/ değerleri
ama java script ile gidiyor ve ben bi burp ile araya girdiğimde tüm yazıların değerlerini kaynak kodda ulaşabiliyorum.
ama python’da beceremediğim için bende dosyayı kaydettim. yani aslında o sayfanın kaynak kodu lazım ama aşağı inildikçe normalde js ile geliyor bilgiler. burp ile değer değiştirirsem tüm yazılar geliyor.
ben bu şekilde yazdığım her yazının değerine ulaşmak istiyorum.
silme kısmını hallettim sağolun o kısımda yardım ettiniz.
şimdi her bir değeri ulaşmam lazım bu sayede entry silici script elimde olacak.
saygılar
202897287
202901378
gibi olanları yani kaç basamaklı 9 basamaklı sayıları seçsin bir yere kaydetsin.
ama aynı değerden defalarca var. bu yüzden bir kere varsa eklemesin o dosyaya.
nasıl yapabilirim?
sonuc = ['1234','123456','1234567','123456789','987654321','123456789']
# bu aldığımız sonuç olsun, burada farklı basamaklı sayılar ve aynı basamaklı üc tane sayı var ama iki tanesi aynı (123456789)
istenilen = ''
for i in sonuc:
if len(i) == 9 and i not in istenilen:
istenilen += i+'\n'
print(istenilen)
hallettim çok teşekkür ederim sayenizde haftalarca uğraşacağım işi 20 satırlık kodla hallettim.
teşekkür ederim
Microsoft Windows [Version 10.0.17134.345]
(c) 2018 Microsoft Corporation. Tüm hakları saklıdır.
import requests
import re
oturum = “xxxxxxxxxxxxxxxx”
with open(r"C:\Users\emre\Desktop\emre.html", encoding=‘utf-8’) as f:
… dosya = f.read()
…
sonuc = re.findall(‘href=".*?(\d+)’,dosya)
küme = set()
for i in sonuc:
… if len(i) == 9:
… küme.add(i)
…
for s in küme:
… r2 = requests.post(“http://incisozluk.com.tr/ax/?a=yenig&na=entry&na2=sil”, data={“entry_id”:s}, cookies={“PHPSESSID”:oturum})
…