Αλλαγή γραμματοσειράς
Ημερομηνία Σάβ Νοέμ 18, 2017 6:31 am
foss.aueb.gr

Προγραμματισμός

Τα δικά μας script !

Σχετικά με τον προγραμματισμό

Re: Τα δικά μας script !

Δημοσίευσηαπό Master_ex » Δευτ Φεβ 06, 2012 11:54 pm

cyberpython έγραψε:Ένα python script για την εκτύπωση κώδικα από command line:

Σε ποιά έκδοση python είναι γραμμένο?

Επίσης το gi.repository ποιο πακέτο είναι?

Γενικά το έτρεξα ως εξής:
Κώδικας: Επιλογή όλων
$ python test.py html classic "Liberation Mono 10" test.html

File "test.py", line 51
    '''
      ^
SyntaxError: invalid syntax

και
Κώδικας: Επιλογή όλων
$ python2 test.py html classic "Liberation Mono 10" test.html
ERROR:root:Could not find any typelib for GtkSource
Traceback (most recent call last):
  File "test.py", line 27, in <module>
    from gi.repository import Gtk, GtkSource
ImportError: cannot import name GtkSource


Επίσης εγκατέστησα τα εξής:
Κώδικας: Επιλογή όλων
extra/python-gobject 3.0.3-1
    Python 3 bindings for GObject
extra/python-gobject2 2.28.6-4
    Python 3 bindings for GObject2
extra/python2-gobject 3.0.3-1
    Python 2 bindings for GObject
extra/python2-gobject2 2.28.6-4
    Python 2 bindings for GObject2

Αλλά χωρίς καμία τύχη :/
Άβαταρ μέλους
Master_ex
Moderator
 
Δημοσ.: 258
Εγγραφη: Παρ Μάιος 08, 2009 12:14 am
Operating System: .:/ arch \:.

Re: Τα δικά μας script !

Δημοσίευσηαπό cyberpython » Τρί Φεβ 07, 2012 8:28 am

Master_ex έγραψε:
cyberpython έγραψε:Ένα python script για την εκτύπωση κώδικα από command line:

Σε ποιά έκδοση python είναι γραμμένο?

Επίσης το gi.repository ποιο πακέτο είναι?

Γενικά το έτρεξα ως εξής:
Κώδικας: Επιλογή όλων
$ python test.py html classic "Liberation Mono 10" test.html

File "test.py", line 51
    '''
      ^
SyntaxError: invalid syntax

και
Κώδικας: Επιλογή όλων
$ python2 test.py html classic "Liberation Mono 10" test.html
ERROR:root:Could not find any typelib for GtkSource
Traceback (most recent call last):
  File "test.py", line 27, in <module>
    from gi.repository import Gtk, GtkSource
ImportError: cannot import name GtkSource


Επίσης εγκατέστησα τα εξής:
Κώδικας: Επιλογή όλων
extra/python-gobject 3.0.3-1
    Python 3 bindings for GObject
extra/python-gobject2 2.28.6-4
    Python 3 bindings for GObject2
extra/python2-gobject 3.0.3-1
    Python 2 bindings for GObject
extra/python2-gobject2 2.28.6-4
    Python 2 bindings for GObject2

Αλλά χωρίς καμία τύχη :/


Μάλλον έχει πρόβλημα με το indentation από το code tag του forum: δοκίμασε τον κώδικα από εδώ: https://github.com/cyberpython/Python-S ... printer.py

Η έκδοση της Python είναι η 2.7.2+ (αλλά πρέπει να τρέχει και σε προηγούμενες).

Θέλει εγκατεστημένο το GtkSourceview 3.0 και τα GObject bindings που χρησιμοποιούν το GObject introspection (gi) - σε Ubuntu είναι τα πακέτα:
  • libgtksourceview-3.0-0
  • libgtksourceview-3.0-common
  • libgtksourceview-3.0-dev (αυτό μάλλον δε χρειάζεται)
  • gir1.2-gtksource-3.0
Άβαταρ μέλους
cyberpython
Open Member
 
Δημοσ.: 66
Εγγραφη: Τετ Μάιος 20, 2009 10:50 pm
Operating System: Ubuntu

Re: Τα δικά μας script !

Δημοσίευσηαπό ala_mages » Παρ Μαρ 23, 2012 5:48 pm

Να ένα ανούσιο spammer-style python script που μαζεύει ότι mail πετύχει στις σελίδες που επιστρέφει η google σαν αποτελέσματα για κάποιο search query που του δίνεις. Χρειάζεται να του ορίσεις τον user agent , το πλήθος των results που θέλεις να ψάξει(pages) , το socket timeout (γιατί αλλιώς σε κάποιες φάσεις θα φορτώνει για πάντα), καθώς και ποσο χρόνο να σταματάει (sleepy) μετά από κάθε request στην google (για να μην σε κόψει όταν θες να πάρεις πχ το max που είναι <= ( ~ ) 1000 results ) . Για να παίξει το search query πρέπει να το δώσεις ως ένα όρισμα ανάμεσα σε " " , αυτά. aa και τρέχει με python 2.6 (μονο αυτή έχουνε εδώ) με python >= 3 νομίζω έχει θέμα με την sgmllib (Όπως καταλάβατε σήμερα σκοτώνομαι στην δουλειά)

Κώδικας: Επιλογή όλων
#------------mail crawler via google seach----------#
#------------------ python 2.6-------------------#
import re
import sys
import time
import urllib
import urllib2
import socket
from sgmllib import SGMLParser

#------configs------#
user_agent = "Mozilla/5.0 (X11; Linux x86_64; rv:10.0.3) Gecko/20120314 Firefox/10.0.3"
pages = 50 # up to 990-1000
sleepy = 2 #seconds
timeouts = 5 #seconds to urlopen timeout or else sometimes loads forever
google_service = "https://www.google.gr/search?"
#-------------------#

class URLLister(SGMLParser):
  def reset(self):
    SGMLParser.reset(self)
    self.urls = []

  def start_a(self, attrs):
    href = [v for k, v in attrs if k=='href']
    if href:
      self.urls.extend(href)

#set the socket timeout
socket.setdefaulttimeout(timeouts)     
fixed_query=''
query_link = "https://www.google.gr/search?&query=my+mail+is"
email_pattern = re.compile('([\w\-\.]+@(\w[\w\-]+\.)+[\w\-]+)')
maillist=[]
   
opener = urllib2.build_opener()
#add user agent header to all requests
opener.addheaders = [('User-agent', user_agent)]

#check if input is valid
if not len(list(sys.argv)) == 2:
    sys.exit('Wrong input faggot!!')
   
search_stuff = list(sys.argv[1])
#fix the search query : yo man aw ---> yo+man+aw
for i in range(len(search_stuff)):
    if search_stuff[i] == ' ':
        search_stuff[i] = '+'
       
fixed_query = ''.join(search_stuff)

for current_page in range(0,pages,10):
    #fix the query link the proper way
    query_link = google_service+'&q='+fixed_query+'&start='+str(current_page)+'&filter=0'
    #print query_link
    request = urllib2.Request(query_link)
    feeddata = opener.open(request).read()
   
    #parse the html page
    parser = URLLister()
    parser.feed(feeddata)
    parser.close()

    #extract all the mails
    for url in parser.urls:
        if (url.startswith('http') and not 'google' in url and not 'webcache' in url):
            try:
                yo = email_pattern.findall(urllib.urlopen(url).read())
            except Exception, e:
                pass #just do thing
            else:
                for mail in yo:
                    maillist.append(mail[0])
                #keep one mail just once
                myset = set(maillist)
                for final_mail in myset:
                    print final_mail
                   
                #empty list
                maillist[:] = []
   
    #time to sleep           
    time.sleep(sleepy)


πχ για input : "my mail is"



Η ιδέα είναι να το τρέχεις επαναληπτικά για queries που πιστεύεις ότι θα επιστρέψουν σελίδες με valid mail και το το τρέχεις και για τα ~1000 results του κάθε query(pages = 990-1000) που επιστρέφει (κάνει τότε άπειρη ώρα μαζί με τα sleeps αλλα σιγά σιγά μαζεύει αρκετά mail :p) , όπως είπα και πριν καμια χρηστικότητα :mrgreen:
ala_mages
mangkas
 
Δημοσ.: 59
Εγγραφη: Τρί Μαρ 01, 2011 2:46 am
Operating System: Arch , Redhat

Προηγούμενη

Επιστροφή στην Προγραμματισμός

cron
foss.aueb.gr

Μελη σε συνδεση

Συνολικά υπάρχει 1 μέλος συνδεδεμένο: 0 εγγεγραμμένο, 0 κρυφοί και 1 επισκέπτης (με βάση τα μέλη που έχουν συνδεθεί τα τελευταία 5 λεπτά)
Περισσότερα μέλη σε σύνδεση 167 την Κυρ Οκτ 02, 2016 2:55 am

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης

Γενέθλια

Κανένα μέλος δεν έχει γενέθλια σήμερα