Differences between revisions 11 and 12
Revision 11 as of 2017-03-15 10:19:25
Size: 2160
Editor: uid
Comment:
Revision 12 as of 2017-03-15 10:36:24
Size: 2552
Editor: uid
Comment:
Deletions are marked like this. Additions are marked like this.
Line 92: Line 92:

 * Passare per Tor:
 {{{#!highlight python3
import socks
import socket
import requests

# Prima
print(requests.get("http://icanhazip.com").text)

socks.setdefaultproxy(proxy_type=socks.PROXY_TYPE_SOCKS5,
                      addr="127.0.0.1",
                      port=9050)

socket.socket = socks.socksocket

# Dopo
print(requests.get("http://icanhazip.com").text)
}}}

Costruzione Utensili

La Cultura è la nostra Natura, siamo cacciatori e raccoglitori in un mondo di dati.

Prerequisiti

  • Un'idea vaga di HTML
  • Saper scrivere, o anche solo leggere un qualsiasi linguaggio

Programma

Serie di pomeriggi di sperimentazione libera, segue workshop rivolto al pubblico.

Temi

Ancora da definire, ma a grandi linee:

  • Orientarsi con l'inspector del Browser
  • Rudimenti di web scraping con Python:
    • GET e fake-user agent con requests
    • Beautiful-soup e/o lxml per il parsing delle pagine
    • Web spider con scrapy
  • wget e qualcosa di bash?

Riferimenti Sparsi

Terminale

curl

curl "http://www.example.com"

esegue una GET e ne stampa l'output

curl "http://www.example.com" > out.html

ora l'output viene reindirizzato sul file out.html

wget

wget "http://www.example.com/index.html"

salva in contenuto in index.html

wget -r "http://www.example.com/"

salva tutto il contenuto del sito nella directory corrente

Python

python3 script.py

esegue uno script

python3 script.py > out.txt

esegue uno script e ne salva l'output in out.txt

Codice

  • Stampa l'elenco degli spazi di Macao:
       1 #!/usr/bin/env python3
       2 import requests
       3 from bs4 import BeautifulSoup
       4 
       5 url = "http://www.macaomilano.org/spip.php?rubrique18"
       6 r = requests.get(url)
       7 page = r.text
       8 
       9 soup = BeautifulSoup(page, "html.parser")
      10 
      11 h2s = soup.findAll("h2")
      12 spazi = [h2.text for h2 in h2s]
      13 
      14 print("\n".join(spazi))
    
  • Fake user-agent:
       1 headers = requests.utils.default_headers()
       2 headers.update({"User-Agent": "Mozilla/5.0"})
       3 
       4 r = requests.get(url, headers=headers)
    
  • Passare per Tor:
       1 import socks
       2 import socket
       3 import requests
       4 
       5 # Prima
       6 print(requests.get("http://icanhazip.com").text)
       7 
       8 socks.setdefaultproxy(proxy_type=socks.PROXY_TYPE_SOCKS5,
       9                       addr="127.0.0.1",
      10                       port=9050)
      11 
      12 socket.socket = socks.socksocket
      13 
      14 # Dopo
      15 print(requests.get("http://icanhazip.com").text)
    

CostruzioneUtensili (last edited 2017-03-18 01:13:13 by subnixr)