a[6] = {10, 21, 32, 43, 54, 35};
我正在尝试从Google搜索引擎中提取电影的imdb评级。每次返回都不返回,尽管id是正确的。
答案 0 :(得分:1)
如果您尝试在DOM中找到before-appbar
:
import requests
from bs4 import BeautifulSoup
#Finds the imdb rating of a given movie or TV series
search_term1="What is the imdb rating of "
search_term2=input("Enter the name of the movie or TV Series : ")
search_term=search_term1+search_term2
response=requests.get("https://www.google.co.in/search?q="+search_term)
print("before-appbar" in response.text)
输出为 False
因此,显然“ before-appbar”不是此处的任何元素的ID。
我的猜测是您正在尝试通过从浏览器检查DOM元素来确定它。但是在大多数情况下,JS对DOM进行了很多更改,因此它与您在python中使用requests
所获得的匹配。
我可以为您推荐两种可能的解决方案:
将响应保存在html文件中,在浏览器中将其打开,然后 检查您需要查找的元素。
f = open("response.html", "w")
f.write(response.text)
f.close()
使用selenium和无头浏览器。
答案 1 :(得分:0)
问题取决于您尝试搜索ID的方式,而不是
print(soup.find(id="before-appbar"))
与print(soup.find({"id":"before-appbar"}))
希望这可以解决问题。