【发布时间】:2017-12-31 12:22:22
【问题描述】:
我正在尝试从谷歌翻译网站中提取 span 标签内容。内容是具有 id="result_box" 的翻译结果。 当尝试打印内容时,它返回 None 值。
请查看图片here
import requests
from bs4 import BeautifulSoup
r = requests.get("https://translate.google.co.in/?rlz=1C1CHZL_enIN729IN729&um=1&ie=UTF-8&hl=en&client=tw-ob#en/fr/good%20morning")
soup = BeautifulSoup(r.content, "lxml")
spanner = soup.find(id = "result_box")
result = spanner.text
【问题讨论】:
-
问题是请求不执行javascript,所以如果你访问你试图废弃的链接,你会看到类似imgur.com/a/lwSc5的东西。这就是为什么总是返回 None。
-
@AnkitDev 结果可能是由javascript设置的,因此当你发送请求时它不存在于正文中。模拟浏览器你可以使用
seleniumselenium-python.readthedocs.io -
如果你需要谷歌翻译你应该检查这个ctrlq.org/code/19909-google-translate-api
-
在您投入大量精力之前,请记住,如果您执行大量自动请求,Google 会阻止您。 (虽然您在使用验证码图像验证您不是机器人后仍然可以使用它)。
标签: python python-3.x web-scraping beautifulsoup python-requests