我正在尝试使用python和漂亮汤来抓取谷歌搜索结果。在我的第一个程序中,我只是尝试获取搜索结果页面上的所有链接。最终,我想做的是跟随其他网站的链接,然后抓取这些网站。问题是当我查看我的程序给我的链接时,它们并没有指向正确的url。例如,在谷歌中搜索“什么是python”后的第一个网站url是'https://www.python.org/doc/essays/blurb/‘,但是我的程序给了我'/url?q=https://www.python.org/doc/essays/blurb/&sa=U&ved=0ahUKEwirv7mZzNnbAhXD5YMKHdl0AFsQFggUMAA&usg=AOvVaw3Q2RD0gl-X3BiEJ-5HIxmF’
回顾BeautifulSoup文档,我期望得到类似于他们的示例的输出:
for link in soup.find_all('a'):
print(link.get('href'))
# http://example.com/elsie
# http://example.com/lacie
# http://example.com/tillie
相反,我得到的是前面的'/url?q=‘和网站地址后面的许多未解析的字符。有人能解释一下为什么我没有得到预期的输出吗?下面是我的代码:
import requests
from bs4 import BeautifulSoup
search_item = 'what is python'
url = "https://www.google.ca/search?q=" + search_item
response = requests.get(url)
soup = BeautifulSoup(response.text, "lxml")
for link in soup.find_all('a'):
print(link.get('href'))
发布于 2018-07-11 09:17:49
我想为这个问题提供一个更新。我通过添加一个标题发现了这一点:
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99
Safari/537.36'}
r = requests.get(url, headers=headers)
google为我提供了正确的链接,我不需要对字符串进行任何操作。
https://stackoverflow.com/questions/50897213
复制相似问题