#!/usr/bin/env python2
# -*- coding: utf-8 -*-
from BeautifulSoup import BeautifulSoup
from bs4 import BeautifulSoup
from lxml import html
import requests
import sqlite3
#Ustawienia bazy danych
con = sqlite3.connect('test.db')
con.row_factory = sqlite3.Row
cur = con.cursor()
#Iterracja bo jestem przybity i nie wiem jak to zrobic inaczej
i = 0
#Pobranie źródła
#ważne żeby ustawić kodowanie!!!
odpowiedz = requests.get("http://www.wykop.pl/tag/znaleziska/programowanie/")
odpowiedz.encoding = ("utf-8")
html_doc = odpowiedz.content
#Parser znajduje wszystkie linki do znalezisk i dodaje je do listy 'linki'
#a na końcu wyświetla ich ilość(strona w ajax i przy załadowaniu wyświetla
# tylko 50 pierwszych rekordów - trzeba coś wymyślić)
soup = BeautifulSoup(html_doc, 'html.parser')
links = soup('h2')
linki = []
for link in links:
a = link.a.get('href')
linki.append(a)
print("Liczba linkow: ", len(linki))
#Pętla przechodzi do znaleziska,znajduje tytuł, a następnie dopisuje do DB linki i tytuly
#drukuje w konsoli: linki,tytuly,nr iterracji
for zapytanie in linki:
zapytanie = requests.get(linki[i])
print(str(linki[i]))
cont = zapytanie.text
soup1 = BeautifulSoup(cont, 'html.parser')
print(soup1.h2.a.string)
tytul = soup1.h2.a.string
cur.execute('INSERT INTO linki VALUES(NULL, ?, ?);', (str(linki[i]), tytul))
print(i)
i = i + 1
con.commit()
#Informacja o poprawnym zakonczeniu skryptu:
print(" ")
print("FINITO !")
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}