google-cloud-platform - Google Compute Engine aiohttp 获取请求 recaptcha
问题描述
我正在尝试使用 aiohttp 在 Google Compute Engine (GCE) 上向 Newegg 发送一个获取请求。这样做后,我返回了“你是人类吗”的网页。但是,当我在本地机器上运行相同的代码时,我能够很好地检索页面。有谁知道为什么:
- 我只能通过 GCE 获得 Recaptcha 页面,而不是我的本地机器?
- 有什么办法可以避免或绕过 GCE 上的这个 Recaptcha 页面?
我的代码:
import asyncio from bs4 import BeautifulSoup import aiohttp
async def myDriver():
await httpReq()
async def httpReq():
async with aiohttp.ClientSession() as session:
async with session.get("https://www.newegg.com/") as page:
responseCode = page.status
print(responseCode)
pageContent = await page.text()
content = BeautifulSoup(pageContent, 'lxml')
print(content.prettify())
asyncio.run(myDriver())
页面到达:
200
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Are you a human?
</title>
.
.
.
grecaptcha.ready(function()
笔记:
- “Debian GNU/Linux 10(克星)”
- 蟒蛇3.7.3
- aiohttp 3.6.3
- 我用 GCE 上的普通请求库尝试了类似的代码,一切正常,所以这只是 GCE 上的 aiohttp 的问题。
- 我必须为我的项目使用 aiohttp 而不是正常的请求库
解决方案
推荐阅读
- python - 在没有父对象名称的MongoDB中获取字段值
- ruby - 无法通过 rvm 更改 gemset
- javascript - 提交按钮时显示警报
- android - Android Native JNI Parcel 读取数据
- swift - Firebase 身份验证匿名帐户创建然后调用带有 context.auth.uid 错误的函数
- angular - 角度 8 中的组件加载
- r - 在 tibble 中取消嵌套多个 tibble 以拆分 Mutli-Select 调查问题
- python - 在 Python 中访问 shell 变量
- azure-devops - 如何在 Azure Devops 中不使用故事点
- php - 在以下情况下如何使用 RewriteCond