Уведомления

Группа в Telegram: @pythonsu

#1 Июль 19, 2012 00:37:55

mr_freeman
От: Ярославль
Зарегистрирован: 2012-07-12
Сообщения: 4
Репутация: +  0  -
Профиль   Адрес электронной почты  

Не работает urllib

Я совсем недавно начал писать на питоне, вот простой пример и не работает:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import string
import sys
import urllib
print '''Content-type: text/html
'''
print '11111'
url = "http://google.com"
sock = urllib.urlropen(url)
html = sock.read()
sock.close()
print html
#<!--order=085-->

Подскажите что не так?
Вообще хочу небольшого краулера сделать

Офлайн

#2 Июль 19, 2012 00:41:51

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Не работает urllib

mr_freeman
urllib.urlropen
Это что такое?



Офлайн

#3 Июль 19, 2012 01:38:20

EBFE
Зарегистрирован: 2012-07-03
Сообщения: 99
Репутация: +  20  -
Профиль   Отправить e-mail  

Не работает urllib

Ну и как минимум желательно изменить user-agent-string. Потому как google “не любит” запросы из python

>>> x=urllib.urlopen('http://www.google.com/search?q=dd')
>>> x
<addinfourl at 45007688L whose fp = <socket._fileobject object at 0x0000000002AD
9DE0>>
>>> x.read()
'<!DOCTYPE html><html lang=en> ... <ins>That\xe2\x80\x99s an e
rror.</ins><p>Your client does not have permission to get URL <code>/search?q=dd
</code> from this server. 

>>> import urllib2
>>> x=urllib2.urlopen('http://www.google.com/search?q=dd')
...
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden
>>> x=urllib2.build_opener()
>>> x.addheaders.__doc__
"list() -> new empty list\nlist(iterable) -> new list initialized from iterable'
s items"
>>> x.addheaders = ( ('User-agent',"I'm Perl, not Python!!!"), )
>>> x
<urllib2.OpenerDirector instance at 0x0000000002931D88>
>>> y=x.open('http://www.google.com/search?q=dd')
>>> y.read()
'<!doctype html>
...
Dd_(Unix)&amp;sa=U&amp;ei=YzgHUOPFFNDP4QSypf2ACQ&amp;ved=0CBsQFjAA&amp;usg=A
FQjCNFosd2zxSX1IrcI-8VRY-J_IwEZ8g"><b>dd</b> (Unix) - Wikipedia, the free encycl
opedia</a></h3><div class="s">In computing, <b>dd</b> is a common Unix program w
hose primary purpose is the low-<br>  level copying and conversion of raw data.
Возможно стоит обратить внимание на urllib3 и/или request:
http://docs.python-requests.org/en/latest/index.html
http://urllib3.readthedocs.org/en/latest/index.html

Отредактировано EBFE (Июль 19, 2012 01:53:46)

Офлайн

#4 Июль 19, 2012 10:23:11

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Не работает urllib

requests ;)



Офлайн

#5 Июль 19, 2012 16:52:04

mr_freeman
От: Ярославль
Зарегистрирован: 2012-07-12
Сообщения: 4
Репутация: +  0  -
Профиль   Адрес электронной почты  

Не работает urllib

fata1ex
mr_freeman
urllib.urlropen
Это что такое?
Соря, прост под вечер голова не варила, ничего не заметил(
Теперь выводит только проблема с кодировкой(
Пожалуйста подскажите все возможные места, где можно ее прописать???

Отредактировано mr_freeman (Июль 19, 2012 16:56:43)

Офлайн

#6 Июль 19, 2012 19:07:03

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Не работает urllib

EBFE
Потому как google “не любит” запросы из python
Ну ни хрена себе.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version