2017-01-07 2 views
2

Я пытаюсь найти слово в google с помощью python. Затем я попытаюсь извлечь его в список и распечатать список. Но теперь у меня есть эта проблема:Python Поиск Google

class search: 
    def __init__(self, search): 
     page = requests.get("http://www.google.de/search?q="+search) 
     soup = BeautifulSoup(page.content) 
     links = soup.findAll("a") 
     for link in soup.find_all("a",href=re.compile("(?<=/url\?q=)(htt.*://.*)")): 
      print re.split(":(?=http)",link["href"].replace("/url?q=","")) 

search("lol") 

Это работает. Но посмотрите на вывод:

['http://euw.leagueoflegends.com/de&sa=U&ved=0ahUKEwie3sWOkbHRAhVGGCwKHSChAWQQFggVMAA&usg=AFQjCNEkd1xB6jaSnzWz-VpYcnHvSNYMJA'] 

['http://webcache.googleusercontent.com/search%3Fq%3Dcache:as12jwqcnbAJ', 'http://euw.leagueoflegends.com/de%252Blol%26hl%3Dde%26ct%3Dclnk&sa=U&ved=0ahUKEwie3sWOkbHRAhVGGCwKHSCqewsfdvfgh1A&usg=AFQjCNEm132qewdasDq2hCb9SRjnbmbMb3rkw'] 

(и так далее)

Как я это в список !? И как я могу удалить эту вещь веб-кэша?

Я знаю, что он закодирован в utf8, но я могу просто декодировать его с помощью urllib2.

Заранее благодарю вас!

+0

Вы хотите положить печатные линии в том же списке? – DonutGaz

ответ

1

Это должно приблизить вас. links не использовался. Метод теперь возвращает список без строк, содержащих webcache:

from bs4 import BeautifulSoup 
import requests 
import re 

class Google: 
    @classmethod 
    def search(self, search): 
     page = requests.get("http://www.google.de/search?q="+search) 
     soup = BeautifulSoup(page.content) 
     links = soup.find_all("a",href=re.compile("(?<=/url\?q=)(htt.*://.*)")) 
     urls = [re.split(":(?=http)",link["href"].replace("/url?q=",""))[0] for link in links] 
     return [url for url in urls if 'webcache' not in url] 

print Google.search("lol") 

Он выводит

[u'http://euw.leagueoflegends.com/de&sa=U&ved=0ahUKEwixjpPMmrHRAhUHlSwKHUIuCIIQFggVMAA&usg=AFQjCNEkd1xB6jaSnzWz-VpYcnHvSNYMJA', u'http://euw.leagueoflegends.com/de/news/&sa=U&ved=0ahUKEwixjpPMmrHRAhUHlSwKHUIuCIIQjBAIHDAB&usg=AFQjCNGY7DvS4oNNQktCTf3FGtStOG9xvA', u'http://gameinfo.euw.leagueoflegends.com/de/game-info/&sa=U&ved=0ahUKEwixjpPMmrHRAhUHlSwKHUIuCIIQjBAIHjAD&usg=AFQjCNGrvfhy3JIOHWUYB-YtyFV2A... 
+0

Спасибо! Это работает для меня! – Lucas

Смежные вопросы