Facebook
From Karol Chorzępa, 5 Years ago, written in Python.
Embed
Download Paste or View Raw
Hits: 243
  1. #!/usr/bin/env python2
  2. # -*- coding: utf-8 -*-
  3. from BeautifulSoup import BeautifulSoup
  4. from bs4 import BeautifulSoup
  5. from lxml import html
  6. import requests
  7. import sqlite3
  8.  
  9. #Ustawienia bazy danych
  10. con = sqlite3.connect('test.db')
  11. con.row_factory = sqlite3.Row
  12. cur = con.cursor()
  13.  
  14. #Iterracja bo jestem przybity i nie wiem jak to zrobic inaczej
  15. i = 0
  16.  
  17. #Pobranie źródła
  18. #ważne żeby ustawić kodowanie!!!
  19. odpowiedz = requests.get("http://www.wykop.pl/tag/znaleziska/programowanie/")
  20. odpowiedz.encoding = ("utf-8")
  21. html_doc = odpowiedz.content
  22.  
  23. #Parser znajduje wszystkie linki do znalezisk i dodaje je do listy 'linki'
  24. #a na końcu wyświetla ich ilość(strona w ajax i przy załadowaniu wyświetla
  25. # tylko 50 pierwszych rekordów - trzeba coś wymyślić)
  26. soup = BeautifulSoup(html_doc, 'html.parser')
  27. links = soup('h2')
  28. linki = []
  29. for link in links:
  30.     a = link.a.get('href')
  31.     linki.append(a)
  32. print("Liczba linkow: ", len(linki))
  33.  
  34. #Pętla przechodzi do znaleziska,znajduje tytuł, a następnie dopisuje do DB linki i tytuly
  35. #drukuje w konsoli: linki,tytuly,nr iterracji
  36. for zapytanie in linki:
  37.     zapytanie = requests.get(linki[i])
  38.     print(str(linki[i]))
  39.     cont = zapytanie.text
  40.     soup1 = BeautifulSoup(cont, 'html.parser')
  41.     print(soup1.h2.a.string)
  42.     tytul = soup1.h2.a.string
  43.     cur.execute('INSERT INTO linki VALUES(NULL, ?, ?);', (str(linki[i]), tytul))
  44.     print(i)
  45.     i = i + 1
  46.     con.commit()
  47.  
  48. #Informacja o poprawnym zakonczeniu skryptu:
  49. print("   ")
  50. print("FINITO !")
  51.    
  52.