gpt4 book ai didi

python - 谷歌搜索给出重定向网址,而不是真实的网址python

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:25 25 4
gpt4 key购买 nike

所以基本上我的意思是,当我搜索 https://www.google.com/search?q=turtles 时,第一个结果的 href attribute 是 google.com/url 重定向。现在,如果我只是用浏览器浏览互联网,我不会介意这一点,但我正在尝试用 python 获取搜索结果。所以对于这段代码:

import requests
from bs4 import BeautifulSoup

def get_web_search(query):
query = query.replace(' ', '+') # Replace with %20 also works
response = requests.get('https://www.google.com/search', params={"q":
query})
r_data = response.content
soup = BeautifulSoup(r_data, 'html.parser')
result_raw = []
results = []
for result in soup.find_all('h3', class_='r', limit=1):
result_raw.append(result)

for result in result_raw:
results.append({
'url' : result.find('a').get('href'),
'text' : result.find('a').get_text()
})

print(results)

get_web_search("turtles")

我希望

[{ url : "https://en.wikipedia.org/wiki/Turtle", text : "Turtle - Wikipedia" }]

但是我得到的是

[{'url': '/url?q=https://en.wikipedia.org/wiki/Turtle&sa=U&ved=0ahUKEwja-oaO7u3XAhVMqo8KHYWWCp4QFggVMAA&usg=AOvVaw31hklS09NmMyvgktL1lrTN', 'text': 'Turtle - Wikipedia'}

我在这里缺少什么吗?我是否需要提供不同的 header 或其他一些请求参数?任何帮助表示赞赏。谢谢。

注意:我看到了其他关于此的帖子,但我是初学者,所以我无法理解这些帖子,因为它们不是用 python 编写的

最佳答案

只要按照链接的重定向,就会转到正确的页面。假设您的链接位于 url 变量中。

import urllib2
url = "/url?q=https://en.wikipedia.org/wiki/Turtle&sa=U&ved=0ahUKEwja-oaO7u3XAhVMqo8KHYWWCp4QFggVMAA&usg=AOvVaw31hklS09NmMyvgktL1lrTN"
url = "www.google.com"+url
response = urllib2.urlopen(url) # 'www.google.com/url?q=https://en.wikipedia.org/wiki/Turtle&sa=U&ved=0ahUKEwja-oaO7u3XAhVMqo8KHYWWCp4QFggVMAA&usg=AOvVaw31hklS09NmMyvgktL1lrTN'
response.geturl() # 'https://en.wikipedia.org/wiki/Turtle'

这是有效的,因为您将返回谷歌重定向到的网址,这就是您每次搜索时真正点击的网址。这段代码基本上只是遵循重定向,直到到达真正的 url。

关于python - 谷歌搜索给出重定向网址,而不是真实的网址python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47618469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com