Python é uma linguagem de alto nível, dinâmica e interpretada que tem foco na simplicidade sem abrir mão da robustez. Além disso, aprender Python abre um leque de opções para a sua carreira e também facilita seu caminho para aprender outras linguagem de programação.
Vamos começar com urllib e urllib2, uma vez que eles estão incluídos na biblioteca padrão do Python. Também importaremos o webbrowser para abrir os resultados da pesquisa para visualização.
Aqui está o código:
import urllib import urllib2 import webbrowser url = "http://duckduckgo.com/html" data = urllib.urlencode({'q': 'Python'}) results = urllib2.urlopen(url, data) with open("results.html", "w") as f: f.write(results.read()) webbrowser.open("results.html")
A primeira coisa que você tem que fazer quando você quer enviar um formulário web é descobrir o nome do formulário e para qual URL você enviará. Se você for ao duckduckgo e visualizar a fonte, você notará que sua ação está apontando para um link relativo, “/html“. Assim, nosso URL é “http://duckduckgo.com/html“.
O campo de entrada é chamado de “q“. Então, para passar ao duckduckgo um termo de pesquisa, temos de passar para o campo “q“. É aqui que vem a linha urllib.urlencode. Esta linha codifica nosso termo de pesquisa corretamente. Em seguida, abrimos o URL e fazemos a pesquisa. Os resultados serão lidos e gravados no disco.
Finalmente, abrimos nossos resultados salvos usando o módulo webbrowser.
Agora, vamos descobrir como esse processo é diferente quando se usa o pacote requests.
O pacote requests faz estes envios de uma forma um pouco mais elegante.
Vamos dar uma olhada:
import requests url = "http://duckduckgo.com/html" payload = {'q':'python'} r = requests.post(url, payload) with open("requests_results.html", "w") as f: f.write(r.content)
Em seguida, use requests.post para fazer a pesquisa.
Finalmente, você usa o objeto de solicitação resultante, “r“, e acessa sua propriedade content, que deverá ser salva no disco.
Ignoramos a parte do webbrowser neste exemplo (e no próximo) por brevidade.
Agora, vamos ver como mechanize faz o seu trabalho.
O módulo mechanize tem muitas atributos interessantes para navegar na internet com Python. Infelizmente, ele não suporta JavaScript. Enfim, vamos continuar com o show!
import mechanize url = "http://duckduckgo.com/html" br = mechanize.Browser() br.set_handle_robots(False) # ignore robots br.open(url) br.select_form(name="x") br["q"] = "python" res = br.submit() content = res.read() with open("mechanize_results.html", "w") as f: f.write(content)
Como você pode ver, mechanize é um pouco mais detalhado do que os outros dois métodos anteriores. Também precisamos dizer-lhe para ignorar a diretiva robots.txt ou ele falhará. Claro, se você quer ser um bom internauta, então você não deve ignorá-lo.
De qualquer forma, para começar, você precisa de um objeto Browser. Então você abre o URL, seleciona o formulário (neste caso, “x“) e configura um dicionário com os parâmetros da busca como antes.
Note que em cada método, a configuração de dict é um pouco diferente.
Em seguida, você envia a consulta e lê o resultado. Agora, basta salvar o resultado no disco e está pronto!
Dos três, requests é, provavelmente, o mais simples. Mechanize, dos três, é os mais detalhado. Este pacote tem muitas utilidades e, na maioria das vezes, é usado para foi feito para raspagem de dados e testes de sites.
In 2024 we're witnessing a critical point in democratic technology: the integration of blockchain and…
We’re thrilled to announce an exciting opportunity for you to win not one but two…
Acquiring practical skills is crucial for career advancement and personal growth. Education Ecosystem stands out…
Artificial Intelligence (AI) has been making significant strides in various industries, and the software development…
Another week to bring you the top yield platforms for three of the most prominent…
If you hold a large volume of LEDU tokens above 1 million units and wish…