Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  28 11108
Hei, jeg lurer på om det er mulig å lage en script på et spill som heter mafiaenshevn du finner spillet hvis du søker opp mafiaenshevn.com. jeg har lyst å sjekke om ca 100+ stk har vært online på spillet iløpet av de siste (1-24 timene) jeg kan endre på.
er dette en lett script å gjøre og er det mulig noen kan skrive en slik script til meg? takk
fuck you. jeg er hocked etter minutter
Trådstarter
9 0
haha xD har en notepad med 100stk men vil ha en sjapp møte å sjekk om de er på eller ikke noen som kan lage noe slikt script?
ser ut som om det er bugs på tiden til fightclub
Trådstarter
9 0
er en tid på fight club og en på finn kamp
Ja, det er mulig.

Hvis du skriver hvor mye du er villig til å betale for jobben er det sikkert noen som kan hjelpe deg.
Her er kode som logger inn og printer påloggede brukere. Visualisering gjenstår...

Kode

#!python3
from bs4 import BeautifulSoup
import requests
import sqlite3
import time
import sys

# Login and download online users
s = requests.Session()
data = {"user":"freakforum", "password":"freakforum"}
url = "https://www.mafiaenshevn.com/home.php"
r = s.post(url, data=data)
r = s.get("https://www.mafiaenshevn.com/?side=online")

# Get online users from returned HTML
soup = BeautifulSoup(r.text, "html.parser")
try:
    online_a = soup.find("td", class_="Innhold").find_all("a")
except AttributeError as e:
    print("Failed to get online users")
    print(soup.get_text())
    sys.exit(1)
users = [a.get_text() for a in online_a]
print(users)
Trådstarter
9 0
^ hvordan bruk jeg den da? putter jeg den inn i notepad ++ åså?
eey mulig å få satt opp et? :d pm
^ hvordan bruk jeg den da? putter jeg den inn i notepad ++ åså?
Vis hele sitatet...
Ja da virker alt :)
Kjapt for Windows,last python 3.6
Under install lag berede path eg C:\python36
Pass på add Python36 to path and pip er merket på.
Restart.
Her er hele opplegg og jeg bruker virtual environment(som nå er build in 3.6)
Bruker cmder,men det samme virker i cmd.

Kode

# Make virtual enviroment
C:\Python36
λ python -m venv mafia

# Cd in
C:\Python36
λ cd mafia

# Activate enviroment
C:\Python36\mafia
λ C:\Python36\mafia\Scripts\activate.bat
(mafia) C:\Python36\mafia

# Install Beautifulsoup and Requests
λ pip install beautifulsoup4 requests
(mafia) C:\Python36\mafia
λ pip install beautifulsoup4 requests
Collecting beautifulsoup4
  Using cached beautifulsoup4-4.5.3-py3-none-any.whl
Collecting requests
  Using cached requests-2.13.0-py2.py3-none-any.whl
Installing collected packages: beautifulsoup4, requests
Successfully installed beautifulsoup4-4.5.3 requests-2.13.0

# Run code from Ozma
(mafia) C:\Python36\mafia
λ python mafia_ozma.py
['Birkux', 'DonQuote', 'DeadAngel', 'HmK', 'Addexio', 'cybermonza'....]
Trådstarter
9 0
Okei.. alt jeg forsto med av der er at jeg skal laste ned python og jeg gjorde det.. ka skal jeg gjøre nu? gi meg en step t step guide xD
Trigonoceps occipita
vidarlo's Avatar
Donor
Det er meir eller mindre steg-for-steg-oppskrift, og eg trur du bør prøve, og komme tilbake med nøyaktig kva som er problemet - om det er noko. Så vidt eg kan bedømme er det heilt grei skildring av prosessen.
gi meg en step t step guide xD
Vis hele sitatet...
Det er en step guide,
viss du er helt blank på dette feltet hvorfor da spørre etter et script?

Vet du hva command line(cmd) er?
Det det er der jeg gjør alt i posten min.

Du kan godt hoppe over virtual environment delen.
Men du må installer Beautifulsoup som Requests som vist.
pip install beautifulsoup4 requests
Du lagrer koden eg mafia.py og kjører den med python mafia.py.
Trådstarter
9 0
Jeg forstår ikke en shit. hvorfor skal jeg spør om et script hvis jeg kan det? jeg blank det er jo derfor jeg spør?
Jeg har Python36 hva gjør jeg når jeg har det ?
Trådstarter
9 0
Jeg vet hva en CMD er
Trådstarter
9 0
Ka vanskelig dere sku si det jeg måtte gå inn i CMD å skrive pip install beautifulsoup4 requests
Trådstarter
9 0
''Du lagrer koden eg mafia.py og kjører den med python mafia.py.''
mafia.py ? er det Koden som står lengere opp i chaten?
Måken's Aspirant
Fleff's Avatar
Donor
Foreslår at du bruker noen minutter på å lese svarene, det er ganske simpelt forklart.
Kort forklart, det er en kode du må lagre og kompilere selv i python for å så kjøre den.
Sitat av Fredmyrv Vis innlegg
Jeg forstår ikke en shit. hvorfor skal jeg spør om et script hvis jeg kan det? jeg blank det er jo derfor jeg spør?
Jeg har Python36 hva gjør jeg når jeg har det ?
Vis hele sitatet...
Du spurte etter et script, og du har fått et script nå. Da antar jeg/vi at du er i stand til å kjøre scriptet selv, spesielt siden du for en step-by-step guide.

Du treng følgende:
  • Script (Koden som er ovenfor, denne limer du inn i notepad og lagrer den som mafia.py)
  • Python interpreter (Det er denne du bruker til å kjøre scriptet med).
  • Bibliotekene:
    • beautifulsoup4 (Denne brukes til å parse html kode med)
    • requests (Denne brukes til å requeste html kode med)

Fremgangsmåte:
  1. Lim inn koden i notepad og lagre den som mafia.py
  2. Installer python (Dette har du allerede gjort)
  3. Installer beautifulsoup4 og requests.
  4. Kjør koden med følgende linje (fra cmd):

    Kode

    python mafia.py

Hvis du ikke for til dette, da er det ingen hensikt at du spør etter scripts, da dette er et altfor avansert område for deg. Litt egeninnsats må være lov å forvente seg, dette her er noe barneskole elever klarer på egenhånd. [/list]
Sist endret av 0xFF; 21. februar 2017 kl. 23:09.
Liten betatest av en nettside som sier hvor mange timer det er siden en bruker var sist aktiv: http://5.101.101.228:8000/mafia-online.html

Du fortjener det ikke, men jeg liker å kode...
Ble så klart IP-blokket fra nettsiden, både jeg og serveren, men her er koden om noen er interessert.

Kode

[mafia] droplet ~/www/mafia
$ tree .
.
├── displayonline.py
├── getonline.py
└── public
    └── placeholder

Kode

[mafia] droplet ~/www/mafia
$ cat displayonline.py
import sqlite3
import pytz
from collections import defaultdict
import json
import time
from datetime import datetime

# Make list for each user containing times they were online
online = defaultdict(list)
conn = sqlite3.connect("online.db")
c = conn.cursor()
for row in c.execute("SELECT time, users FROM online WHERE time > strftime('%s','now') - 7*86400"):
    t = row[0]
    users = row[1].split(",")
    for user in users:
        online[user].append(t)

tz = pytz.timezone("Europe/Oslo")
oslo_now = datetime.now(tz)

print("""
      <!doctype html>
      <meta charset="utf-8">
      <pre>
""")
print("Last update:", oslo_now, "\n")

# Increasing times
for user in sorted(online.keys()):
    hours = (time.time() - max(online[user]))/3600
    print("{:<15} seen {:5.1f} hours ago".format(user, hours))

print("</pre>")

Kode

[mafia] droplet ~/www/mafia
$ cat getonline.py
from bs4 import BeautifulSoup
import requests
import sqlite3
import time
import sys

# Login and download online users
s = requests.Session()
data = {"user":"freakforum", "password":"freakforum"}
url = "https://www.mafiaenshevn.com/home.php"
r = s.post(url, data=data)
r = s.get("https://www.mafiaenshevn.com/?side=online")

# Get online users from returned HTML
soup = BeautifulSoup(r.text, "html.parser")
try:
    online_a = soup.find("td", class_="Innhold").find_all("a")
except AttributeError as e:
    print("Failed to get online users")
    print(soup.get_text())
    sys.exit(1)
users = [a.get_text() for a in online_a]

conn = sqlite3.connect("online.db")

# Create online users table
c = conn.cursor()
c.execute("""CREATE TABLE IF NOT EXISTS online
          (time integer, users text)""")
conn.commit()

# Insert current online users
c.execute("INSERT INTO online VALUES (?, ?)", [int(time.time()), ','.join(users)])
conn.commit()

conn.close()

print("Got online users")

Kode

# Fattigmanns-cron

# Terminal 1
$ while true; do python3 getonline.py; sleep 360; done

# Terminal 2
$ while true; do python3 displayonline.py > public/mafia-online.html; sleep 60; done

# Terminal 3
$ cd public
$ python3 -m http.server
Kjente bugs:

* Du blir IP-bannet (midlertidig?)
* Databasen blir uendelig stor over tid
Sist endret av Ozma; 22. februar 2017 kl. 20:10.
Sitat av Ozma Vis innlegg
Ble så klart IP-blokket fra nettsiden, både jeg og serveren, men her er koden om noen er interessert.

[...]

Kjente bugs:

* Du blir IP-bannet (midlertidig?)
* Databasen blir uendelig stor over tid
Vis hele sitatet...
Hva med å implementere en litt mer omfattende HTTP klient, og kopiere HTTP forespørsel parametere fra f.eks google chrome eller en annen nettleser. Slik at nettstedet ikke kan skille ut forespørslene basert på parameterene. Nå vet jeg ikke hvordan request librarien identifiserer seg når den foretar forespørsler, men kan tippe den bruker blant annet en annen User Agent string som skiller seg ut fra de andre som besøker nettstedet.

Jeg har ikke tid til selv å drive å kode og teste, men tar gjerne i mot tilbakemelding.
Det hadde vel vært bedre om du hadde kjørt f.eks Flask Ozma.
En rask demo.
Enkel versjon uten database opplegget,
sender listen fra server bruker jinja(bygd inn i Flask) og kjører løkken på kilent siden.

Kode

{% for user in users %}
    <li> {{ user }} </li>
{% endfor %}
Setter en enkel User-agent,
har bare testet noen ganger med ny bruke:

Kode

user_agent = {'User-agent': 'Mozilla/5.0'}
Server:

Kode

# app.py
from flask import Flask, render_template, jsonify, request
from bs4 import BeautifulSoup
import requests

app = Flask(__name__)
@app.route('/')
def mafia():
    # Login and download online users
    s = requests.Session()
    user_agent = {'User-agent': 'Mozilla/5.0'}
    data = {"user":"xxxx", "password":"xxxx"}
    url = "https://www.mafiaenshevn.com/home.php"
    r = s.post(url, data=data, headers=user_agent)
    r = s.get("https://www.mafiaenshevn.com/?side=online")
    # Get online users from returned HTML
    soup = BeautifulSoup(r.text, "html.parser")
    try:
        online_a = soup.find("td", class_="Innhold").find_all("a")
    except AttributeError as e:
        print("Failed to get online users")
        print(soup.get_text())
        sys.exit(1)
    users = [a.get_text() for a in online_a]
    #print(users)
    return render_template("index.html", users=users)

if __name__ == '__main__':
    app.run(debug=True)
Klient:

Kode

<!-- index.htm -->
<!doctype html>
      <div id="wrapper">
        <ul>
          {% for user in users %}
            <li> {{ user }} </li>
          {% endfor %}
        </ul>
      </div>
    </body>
</html>
Sist endret av snippsat; 22. februar 2017 kl. 23:52.
Ble så klart IP-blokket fra nettsiden, både jeg og serveren,
Vis hele sitatet...
Ja merket dette,så testet litt mere.
Setter man en oppdatert User Agent,som f.eks dette unngår man og bli kastet ut.

Kode

user_agent = {'User-agent': 'Mozilla/5.0 (X11; NetBSD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36'}
Fikset litt på utseende i koden jeg kjører med Flask.
http://imagizer.imageshack.us/v2/320x240q90/922/NZevrm.jpg
Får se om jeg legger inn noe database opplegg som Ozma har.

@Fredmyrv viss du starter cmd og gjør dette:

Kode

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. Med enerett.

C:\Windows\System32>cd\

C:\>python
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

C:\>pip -V
pip 9.0.1 from c:\python36\lib\site-packages (python 3.6)
C:\>
Får du det samme som meg her er Python 3.6 riktig installert.
Sist endret av snippsat; 24. februar 2017 kl. 12:58.
Sitat av snippsat Vis innlegg

Kode

user_agent = {'User-agent': 'Mozilla/5.0 (X11; NetBSD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36'}
Vis hele sitatet...
Vil ikke dette slite med AntiBot'en?
Vil ikke dette slite med AntiBot'en?
Vis hele sitatet...
Joda ble kastet ut,gikk kanskje litt lengre uten en User agent.
Ikke testet noe mer,hadde nok funnet en løsning viss dette var noe jeg ville ha info om.
Sist endret av snippsat; 27. februar 2017 kl. 14:14.
Sitat av snippsat Vis innlegg
Joda ble kastet ut,gikk kanskje litt lengre uten en User agent.
Ikke testet noe mer,hadde nok funnet en løsning viss dette var noe jeg ville ha info om.
Vis hele sitatet...
Hvordan ville du gått frem for å finne en slik løsning da?
▼ ... flere år senere ... ▼
Har laget en bot til mh, den løser ikke antibot tho. Ellers gjør den alt
▼ ... noen måneder senere ... ▼
Noen MH bot i 2021?