Ok, así que necesito descargar algunas páginas web usando Python e hice una investigación rápida de mis opciones.¿Qué es mejor en Python: urllib2, PycURL o mecanizar?
incluye con Python:
urllib - me parece que debo utilizar urllib2 lugar. urllib no tiene soporte de cookies, solo HTTP/FTP/archivos locales (sin SSL)
urllib2 - cliente HTTP/FTP completo, admite la mayoría de las cosas necesarias, como cookies, no admite todos los verbos HTTP (solo GET y POST, no TRACE , etc.)
todas las funciones:
mechanize - puede usar/guardar las cookies de Firefox/IE, tomar acciones como sigue segundo enlace, mantenido de forma activa (0.2.5 publicado en marzo de 2011)
PycURL - Admite todo lo que curl hace (FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE y L DAP), las malas noticias: no actualizado desde el 9 de Sep, 2008 (7.19.0)
nuevas posibilidades:
urllib3 - Permite la conexión reutilización/puesta en común y el archivo de la publicación de
Desaprobado (también denominado utilizar urllib/urllib2 lugar):
httplib - HTTP/HTTPS (sin FTP)
httplib2 - HTTP/HTTPS (sin FTP)
La primera cosa que me sorprende es que urllib/urllib2/PycURL/mechanize son todas soluciones bastante maduras que funcionan bien. mecanize y PycURL se distribuyen con varias distribuciones de Linux (por ejemplo, Fedora 13) y BSD, por lo que la instalación no suele ser un problema (así que eso es bueno).
urllib2 se ve bien pero me pregunto por qué PycURL y mecanizar ambos parecen muy populares, ¿hay algo que me falta (es decir, si uso urllib2 me pintaré en una esquina en algún momento?). Realmente me gustaría obtener algunos comentarios sobre los pros/contras de estas cosas para poder hacer la mejor elección para mí.
Editar: nota añadida en el apoyo verbo en urllib2
¿Qué significa "mejor" significa? Mejor con respecto a qué? ¿Lo más rápido? Más grande? El mejor uso de las cookies? ¿Qué es lo que hay que hacer? –
httplib no está "en desuso". Es un módulo de nivel inferior sobre el que se construye urllib2. puede usarlo directamente, pero es más fácil a través de urllib2 –
Lo que Corey dijo, p. urllib3 es una capa encima de httplib. Además, httplib2 no está en desuso, de hecho es más nuevo que urllib2 y soluciona problemas como la reutilización de la conexión (lo mismo con urllib3). – Yang