Recent Changes - Search:

Oktatás

* Programozás 1
  + feladatsor
  + GitHub oldal

* Szkriptnyelvek
  + feladatsor
  + quick link

Teaching

* Programming 1 (BI)
  ◇ exercises
  ◇ quick link

* Scripting Languages
  ◇ exercises
  ◇ quick link

teaching assets


Félévek

* aktuális (2023/24/2)
* archívum


Linkek

* kalendárium
   - munkaszüneti napok '20
* tételsorok
* jegyzetek
* szakdolgozat / PhD
* ösztöndíjak
* certificates
* C lang.
* C++
* C#
* Clojure
* D lang.
* Java
* Nim
* Scala


[ edit | logout ]
[ sandbox | passwd ]

Py3 /

20121026a

Dívány szavazatok testreszabása

Az Indexet böngészve az ember néha rátéved a https://divany.hu/ oldalra is. Itt néhány cikk alján lehet szavazni (menő / ciki). Sajnos egyes szavazatok állása teljesen felháborító…

Feladat

Válasszunk ki egy dívány cikket ahol a szavazatok jelenlegi állása nem tükrözi a saját értékrendünket. Módosítsuk úgy a szavazatmétert, hogy az mostantól a helyes eredményt mutassa.

Konkrét példa:

Segítség

  • Vigyük az egeret a "menő" vagy a "ciki" gomb fölé s figyeljük meg, hogy milyen URL-re mutatnak.
  • Egy IP címről egy nap csak egy szavazatot lehet leadni, amit a Dívány weboldal cookie-k segítségével figyel. A jó hír az, hogy ez könnyedén kijátszható.
  • Ne vigyünk be egyszerre túl sok szavazatot, akkor ui. könnyen kiszúrnak minket a webszerver logfájljaiban.
  • Két szavazat között érdemes egy kis időt várakozni (lásd time.sleep(sec) függvény). A legjobb az, ha egy időintervallumból véletlenszerűen választjuk ki a várakozási időt. Így a webszerver naplófájljában nehezebben veszik észre az ismétlődő mintát! Ehhez használjuk fel az alábbi függvényt:
import time
import random as r

def sleep(fix=5, plus=5):
    """Sleep for some randomized time.

    Time will be a real value between fix and fix+plus."""

    sec = fix + r.uniform(0, plus)
    time.sleep(sec)        
    return sec

Kimenet átirányítása a kukába

Az oldalt le akarjuk tölteni, de a letöltött tartalomra már nincs szükségünk. A kimenetet többféleképpen is eldobhatjuk:

  • wget URL -qO- >/dev/null
  • curl -s URL >/dev/null
  • r = requests.get(URL), majd az r.text értékét nem használjuk fel

User Agent beállítása

Ha egy szerver nem (vagy csak nehezen) fogad minket, akkor állítsuk be a user agent-et:

import requests

headers = {
    'User-Agent': 'My User Agent 1.0',
}

url = '...'

response = requests.get(url, headers=headers)

Saját user agent-em megállapítása: https://www.whatismybrowser.com/detect/what-is-my-user-agent/

Cloud City

  

Blogjaim, hobbi projektjeim

* The Ubuntu Incident
* Python Adventures
* @GitHub
* heroku
* extra
* haladó Python
* YouTube listák


Debrecen | la France


[ edit ]

Edit - History - Print *** Report - Recent Changes - Search
Page last modified on 2023 May 11, 07:42