Вечернего Folks,Прицепных данных/ссылки из поиска Google с помощью Beautiful Soup
Я пытаюсь задать вопрос Google, и тянуть все соответствующие ссылки из своего уважаемого поискового запроса (то есть я ищу «сайт: Википедию. ком Томас Джефферсон», и это дает мне wiki.com/jeff, wiki.com/tom и т.д.)
Вот мой код:
from bs4 import BeautifulSoup
from urllib2 import urlopen
query = 'Thomas Jefferson'
query.replace (" ", "+")
#replaces whitespace with a plus sign for Google compatibility purposes
soup = BeautifulSoup(urlopen("https://www.google.com/?gws_rd=ssl#q=site:wikipedia.com+" + query), "html.parser")
#creates soup and opens URL for Google. Begins search with site:wikipedia.com so only wikipedia
#links show up. Uses html parser.
for item in soup.find_all('h3', attrs={'class' : 'r'}):
print item.string
#Guides BS to h3 class "r" where green Wikipedia URLs are located, then prints URLs
#Limiter code to only pull top 5 results
цель здесь для меня, чтобы установить запрос переменная, имеет запрос на python Google и Beautiful Soup pulls все «зеленые» ссылки, если хотите.
Here is a picture of a Google results page
Я только хочу, чтобы тянуть зеленые ссылки, в полном объеме. Странно, что исходный код Google «скрыт» (симптом их архитектуры поиска), поэтому Beautiful Soup не может просто пойти и вытащить href из тега h3. Я могу видеть h3 hrefs, когда я проверяю элемент, но не тогда, когда я просматриваю источник.
Here is a picture of the Inspect Element
Мой вопрос: Как я могу идти о потянув топ-5 наиболее соответствующие зеленые ссылки с Google через BeautifulSoup, если я не могу получить доступ к их исходным кодом, только Осмотреть элемент?
PS: Для того, чтобы дать представление о том, что я пытаюсь сделать, я нашел два относительно близко Переполнение стека вопросов, как у меня:
beautiful soup extract a href from google search
How to collect data of Google Search with beautiful soup using python
Спасибо так много для отличного ответа! Я должен спросить, если бы я хотел назначить новую переменную каждой из ссылок, как бы я это сделал? x = wiki.com/tom, y = wiki.com/jeff и т. д. Еще раз большое спасибо за ответ! –
Вы можете сохранить их все в списке вместо их печати или сохранить в словаре. – wpercy
Я относительно новичок в Python, и я не совсем уверен, как это сделать, а тем более интегрировать его с выходным форматом BeautifulSoup. Вы не заметите меня в правильном направлении? И я принял ваш ответ :) –