Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Greek sites crawler(Pythont3)

Greek sites crawler(Pythont3) 6 Χρόνια 9 Μήνες πριν #4623

  • spartakos87a
  • Το Άβαταρ του/της spartakos87a
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 1
Έχω φτιάξει έναν crawler για αρκετά ελληνικά sites όποιος θέλει ας ρίξει μια ματιά.
Σχόλια και συστάσεις δεκτά :)

greek sites crawler
Τελευταία διόρθωση: 6 Χρόνια 9 Μήνες πριν από spartakos87a.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Greek sites crawler(Pythont3) 6 Χρόνια 9 Μήνες πριν #4625

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Αυτό που δεν μου αρέσει είναι ότι είναι πολύ hard coded, δεν ξέρω πως ακριβώς εκφράζεται αυτό στα ελληνικά πιστεύω το καταλαβαίνεις. Επίσης πολλά αρχεία

Εγώ θα σκεφτόμουν να το κάνω ως έξης:

Mία μεγάλη datastructure με όλα τα στοιχεία για κάθε site
από την οποία θα παίρνω μόνο ότι χρειάζομαι
και μία μόνο συνάρτηση που θα επιστρέφει τα data

δηλαδή παράδειγμα
def crawl(site):
	topic = site.topic
	title = site.site
	article = site.article
	publish_time = site.publish_time
        return {'topic':topic,
			'title':title,
				'article':article,
					'publish_time':publish_time
		}

Θα σου πω περισσότερα αργότερα γιατί δεν έχω χρόνο
Παράδειγμα που δεν είναι πλήρες
from bs4 import BeautifulSoup
import requests
 
def crawl(site):
  topic = site.topic
  return {'topic':topic}
 
def get_html(url):
  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'}
  html = requests.get(url,headers=headers).content.decode()
  html = BeautifulSoup(html,'html.parser')
  for script in html(["script", "style"]):
    script.extract()
  return html
 
class Site:
  def __init__(self, where_topic,url):
    self.where_topic=where_topic
    self.html=get_html(url)  
 
  @property	
  def topic(self):
    return self.html.find(*self.where_topic).text
 
και όταν το τρέχω
>>> altsantiri=Site(('h3',{'class':"entry-title td-module-title"}),'http://www.altsantiri.gr/')
>>> altsantiri.topic
'Άρειος Πάγος: Η επίσχεση εργασίας εκλαμβάνεται ως πρόθεση αποχώρησης από τη δουλειά'
>>> crawl(altsantiri)
{'topic': 'Άρειος Πάγος: Η επίσχεση εργασίας εκλαμβάνεται ως πρόθεση αποχώρησης από τη δουλειά'}
>>> 
Τελευταία διόρθωση: 6 Χρόνια 9 Μήνες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.349 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου