为什么工作代码不再提供任何输出?

时间:2019-08-17 15:58:45

标签: python python-3.x beautifulsoup

我从答案How to use BeautifulSoup to parse google search results in Python中提取了以下代码

它曾经在我的Ubuntu 16.04上运行,并且我同时拥有Python 2和3。

代码如下:

import urllib
from bs4 import BeautifulSoup
import requests
import webbrowser

text = 'My query goes here'
text = urllib.parse.quote_plus(text)

url = 'https://google.com/search?q=' + text

response = requests.get(url)

#with open('output.html', 'wb') as f: 
#    f.write(response.content)
#webbrowser.open('output.html')

soup = BeautifulSoup(response.text, 'lxml')
for g in soup.find_all(class_='g'):
    print(g.text)
    print('-----')

它执行但不打印任何内容。这个问题对我来说真的很可疑。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

问题在于,如果您未在标题中指定User-Agent,则Google将提供不同的HTML。要指定自定义标头,请在请求的headers=参数中添加带有import urllib from bs4 import BeautifulSoup import requests import webbrowser text = 'My query goes here' text = urllib.parse.quote_plus(text) url = 'https://google.com/search?q=' + text headers = { 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0' } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'lxml') for g in soup.find_all(class_='g'): print(g.text) print('-----') 的字典:

How to Write the Perfect Query Letter - Query Letter Examplehttps://www.writersdigest.com/.../how-to-write-the-perfect-qu...PuhverdatudTõlgi see leht21. märts 2016 - A literary agent shares a real-life novel pitch that ultimately led to a book deal—and shows you how to query your own work with success.
-----
Inimesed küsivad ka järgmistHow do you start a query letter?What should be included in a query letter?How do you end a query in an email?How long is a query letter?Tagasiside
-----

...and so on.

打印:

constructor(private route: ActivatedRoute) { }

ngOnInit() {
 this.fruit = this.route.snapshot.paramMap.get("fruit")
}