Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/47: Рейтинг темы: голосов - 47, средняя оценка - 4.60
1 / 1 / 1
Регистрация: 21.12.2014
Сообщений: 195
1

Как спарсить результат выдачи Google

08.11.2015, 14:49. Показов 9257. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет,не подскажите как все-таки парсить выдачу поиска Google.пробовал через mechanicalsoup не получилось.. Буду признателен!!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2015, 14:49
Ответы с готовыми решениями:

Как проверить результаты выдачи на google.com.by
Есть ли софт, для масштабной проверки результатов выдачи в google.com.by ? Или может кто подскажет...

Как спарсить POST данные в Google Plus
Здравствуйте. В Google + (Plus) есть community (сообщества), необходимо вступить туда программно....

Как спарсить XPath из JSON в Google Sheets
Всем привет! Подскажите пожалуйста кто сталкивался с похожей ситуацией. Мне надо спарсить...

Как выбрать все wordpress сайты из выдачи google?
Как выбрать все wordpress сайты из выдачи google?

Google.ru и Google.com - разные результаты выдачи
Прошу помощи и пояснений у опытных. Я всегда думал, что у Google выдача одинакова независимо от...

10
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
08.11.2015, 15:28 2
requests или selenium с любым из браузеров
1
1 / 1 / 1
Регистрация: 21.12.2014
Сообщений: 195
08.11.2015, 18:54  [ТС] 3
Думаю с request будет удобнее, но только почему-то не получается. Можно пример?

Добавлено через 1 час 15 минут
Пробовал вот так, но не выходит
Python
1
2
3
4
5
6
7
8
import urllib.request
 
def get_HTML(url):
    responce = urllib.request.urlopen(url)
    return responce.read()
 
site = 'https://www.google.com/search?q=777&ie=utf-8&oe=utf-8'
print(get_HTML(site))
Добавлено через 1 минуту
Выдает ошибку
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Traceback (most recent call last):
  File "C:/Users/Алексей/PycharmProjects/untitled1/main.py", line 18, in <module>
    main()
  File "C:/Users/Алексей/PycharmProjects/untitled1/main.py", line 15, in main
    print(get_HTML(site))
  File "C:/Users/Алексей/PycharmProjects/untitled1/main.py", line 5, in get_HTML
    responce = urllib.request.urlopen(url)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 162, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 471, in open
    response = meth(req, response)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 581, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 503, in error
    result = self._call_chain(*args)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 443, in _call_chain
    result = func(*args)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 686, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 471, in open
    response = meth(req, response)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 581, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 509, in error
    return self._call_chain(*args)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 443, in _call_chain
    result = func(*args)
  File "C:\Usersлексей\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 589, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
Добавлено через 1 час 18 минут
Попробовал вот так, но почему-то получаю html код без результатов..
Python
1
2
3
4
5
    site = 'https://www.google.ru/#q=s&newwindow=1&start=0'
    page = None
    r = requests.get(site)
    page = r.text
    print(page)
0
3 / 3 / 2
Регистрация: 24.11.2014
Сообщений: 27
08.11.2015, 19:28 4
Лучший ответ Сообщение было отмечено Лукаа как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
 
search_engine = "http://www.google.ru"
search_string = "Путин Владимир Владимирович" #:)
 
browser = webdriver.Firefox()
browser.get(search_engine)
element = browser.find_element_by_name('q')
element.send_keys(search_string + ' wiki' + Keys.RETURN)
#waiting for loading SERP
browser.implicitly_wait(5)
all_links = browser.find_elements_by_css_selector('a:link')
hrefs = []
hrefs = [x.get_attribute('href') for x in all_links if x.get_attribute('href') not in hrefs]
1
1 / 1 / 1
Регистрация: 21.12.2014
Сообщений: 195
08.11.2015, 19:32  [ТС] 5
Такой вопрос, а почему при попытке посмотреть исходный код страницы, т е выдачи результатов Google, не видно дива с результатами?
0
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
08.11.2015, 19:40 6
Цитата Сообщение от Лукаа Посмотреть сообщение
Думаю с request будет удобнее,
Я тебе не про стандартную бибилиотеку говорю urllib.request, я тебе говою об requests. Совершение запроса делается в 1 строчку.
0
1 / 1 / 1
Регистрация: 21.12.2014
Сообщений: 195
08.11.2015, 19:53  [ТС] 7
Я же написал, что пробовал через requests
Python
1
2
3
4
5
6
7
8
   
import requests
 
 site = 'https://www.google.ru/#q=s&newwindow=1&start=0'
    page = None
    r = requests.get(site)
    page = r.text
    print(page)
он выдает результат, но в этом HTML тексте нет результатов поиска... Попробуй зайти на google, вбей что-ниб на поиск, он покажет страницу с результатами и попробуй посмотреть исходный код страницы. Там нет div с результатами... Это новая фишка google или я чего-то не понимаю.. Пробовал посмотреть у яндекса - у того все есть..

Добавлено через 3 минуты
Выдают ошибку
Python
1
2
  File "C:/Users/Алексей/PycharmProjects/untitled1/selenium.py", line 5
SyntaxError: Non-UTF-8 code starting with '\xcf' in file C:/Users/Алексей/PycharmProjects/untitled1/selenium.py on line 5, but no encoding declared; see [url]http://python.org/dev/peps/pep-0263/[/url] for details
Добавлено через 36 секунд
0
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
08.11.2015, 20:00 8
Лукаа, Подсовывай какие нибудь заголовки реального браузера, скорее всего тебя гугл шлёт, потому что распознает в тебе бота.

Цитата Сообщение от Лукаа Посмотреть сообщение
Выдают ошибку
В пути не должно быть кирилицы, а у тебя имя пользователя кириллицей написано
0
1 / 1 / 1
Регистрация: 21.12.2014
Сообщений: 195
11.11.2015, 21:43  [ТС] 9
Ругался на Володю))
Python
1
2
search_engine = "http://www.google.ru"
search_string = "Путин Владимир Владимирович" #:)
Добавлено через 7 минут
А как нажать на кнопку, здесь понятно, что js подгружает, а так как это будет?
0
1 / 1 / 1
Регистрация: 21.12.2014
Сообщений: 195
14.11.2015, 22:44  [ТС] 10
Не получается получить массив, можно помочь
Python
1
2
hrefs = []
hrefs = [x.get_attribute('href') for x in all_links if x.get_attribute('href') not in hrefs]
0
3 / 3 / 2
Регистрация: 24.11.2014
Сообщений: 27
18.11.2015, 10:55 11
Лукаа, тут без js. Можно, к примеру, так:
Python
1
2
3
search_string = "что-то найти..."
element = browser.find_element_by_name('q')
element.send_keys(search_string + Keys.RETURN)
Добавлено через 3 минуты
Лукаа, обрати внимание на вот эту строку:
Python
1
all_links = browser.find_elements_by_css_selector('a:link')
этой командой выполняется поиск всех элементов на странице, имеющих HTML тэг <a>, т.е. результат выдачи Гугла
0
18.11.2015, 10:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2015, 10:55
Помогаю со студенческими работами здесь

Результат выдачи
После последнего апа заметил такую вещь: по некому запросу в описании страницы в результатах...

Спарсить результат
&lt;div class=&quot;dashboard-content&quot;&gt; &lt;table&gt; &lt;tr&gt; &lt;td&gt;Всего продано на...

Спарсить результат
Есть сайт: ../check.php Он возвращает результат, что полис действителен или нет и еще некоторую...

Вопрос по выдачи google
Есть сайт : site.com.ua Pr - 3, сайту 3 года, DMOZ По запросу site (запрос ВЧ) сайт на 8 - 14...

Парсинг выдачи Google
Сабж, как спарсить результаты выдачи с Google? Ссылок в коде страницы нет, но если в google chrome...

Парсинг выдачи Google
Здравствуйте! Подскажите пожалуйста, возможно ли при помощи phantomjs произвести парсинг выдачи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru