Форум сайта python.su
Добрый день. Для собственного развития решил написать лёгкую поисковую машину. Задача задать вопрос скрипту он обратится к yandex и google запишет всё в БД и потом отдельно будет проводить анализ скаченного. У меня возникла проблема с Yandex
import urllib.request http='https://yandex.ru/search/?text=' one=input('введи запрос ') one2=urllib.request.pathname2url(one) URL=urllib.request.urlopen(http).read().decode('utf-8')
<b>В вашем браузере отключены файлы cookies</b>. Яндекс не сможет запомнить вас и правильно идентифицировать в дальнейшем.
Офлайн
как-то так, наверно
import http.cookiejar import urllib.request URL = "https://yandex.ru/search/?text={}" cookie = http.cookiejar.CookieJar(jar_file) openers = [urllib.request.HTTPRedirectHandler(), urllib.request.HTTPHandler(debuglevel=0), urllib.request.HTTPSHandler(debuglevel=0), urllib.request.HTTPCookieProcessor(cookie)] opener = urllib.request.build_opener(*openers) query = input("введи запрос ") html opener.open(URL.format(urllib.request.pathname2url(query))).read().decode("utf-8")
Отредактировано pyuser (Июль 25, 2016 07:35:57)
Офлайн
pyuserimport http.cookiejar import urllib.request URL = "https://yandex.ru/search/?text={}" cookie = http.cookiejar.CookieJar(jar_file) openers = [urllib.request.HTTPRedirectHandler(), urllib.request.HTTPHandler(debuglevel=0), urllib.request.HTTPSHandler(debuglevel=0), urllib.request.HTTPCookieProcessor(cookie)] opener = urllib.request.build_opener(*openers) query = input("введи запрос ") html opener.open(URL.format(urllib.request.pathname2url(query))).read().decode("utf-8")
введи запрос python Traceback (most recent call last): File "fulltext2.py", line 22, in <module> html = opener.open(URL.format(urllib.request.pathname2url(query))).read().decode("utf-8") File "/usr/lib/python3.5/urllib/request.py", line 464, in open req = meth(req) File "/usr/lib/python3.5/urllib/request.py", line 1311, in http_request self.cookiejar.add_cookie_header(request) File "/usr/lib/python3.5/http/cookiejar.py", line 1344, in add_cookie_header self._policy._now = self._now = int(time.time()) AttributeError: 'int' object has no attribute '_now'
Офлайн
Snowman8526Правильно говорит :), в данном случае ее не должно быть.
Он говорит что jar_file переменная не определена
import http.cookiejar import urllib.request URL = "https://yandex.ru/search/?text={}" cookie = http.cookiejar.CookieJar() openers = [urllib.request.HTTPRedirectHandler(), urllib.request.HTTPHandler(debuglevel=0), urllib.request.HTTPSHandler(debuglevel=0), urllib.request.HTTPCookieProcessor(cookie)] opener = urllib.request.build_opener(*openers) query = input("введи запрос ") html = opener.open(URL.format(urllib.request.pathname2url(query))).read().decode("utf-8") print(html)
Офлайн
pyuserСпасибо большое за потраченное время. Всё работает.
Вот рабочий код:
Офлайн
Для такого лучше API поиска юзать!
P.S у Google есть API но про Яндекс не знаю
Офлайн