设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 8117|回复: 3
打印 上一主题 下一主题

求助: 使用无头浏览器载入的仍然是js没有执行空白页面?

[复制链接]

16

主题

1

好友

244

积分

中级会员

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2022-6-11 23:17:30 |显示全部楼层 |倒序浏览
本帖最后由 anyone 于 2022-6-11 23:18 编辑

想要下载某个网站中的信息, 其页面中都是js, 所以我尝试使用无头浏览器库: pyppeteer

一切都是初学, 只是照猫画虎得到下面的代码:
  1. import asyncio
  2. from pyppeteer import launch

  3. async def main():

  4.     browser = await launch()
  5.     page = await browser.newPage()
  6.     await page.setUserAgent('Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36')
  7.     await page.goto('https://www.gousto.co.uk/cookbook/chicken-recipes/nutty-bang-bang-chicken-rice-salad', waitUntil='networkidle0')
  8.     await page.screenshot({'path': 'c:/desktop/1654930971.png'})
  9.     await browser.close()

  10. asyncio.get_event_loop().run_until_complete(main())
复制代码
得到的是一个空白页面.
但是换成其他的需要js调用的网址, 就能显示其内容, 比如: "https://chemdrawdirect.perkinelmer.cloud/js/sample/index.html"

我猜想gousto这个网站可能做了一些防止无头浏览器的检测.

我尝试更改了user agent,
也更改了载入判断: waitUntil

但是仍然只能得到空白页面.

想请高手帮我看看, 他使用了什么方法检测出我使用无头浏览器查看的?


非常感谢.
回复

使用道具 举报

16

主题

1

好友

244

积分

中级会员

Rank: 3Rank: 3

沙发
发表于 2022-6-12 17:36:26 |显示全部楼层
感谢回复, 可是你给我的参考让我更加困惑了.

文章中的结尾: "那么如何绕过这个event.isTrusted呢?其实很简单,你使用Selenium/Puppeteer,天然就能绕过它。"

而我就是使用的是puppeteer的python版本: pyppeteer, 应该也能避免这个问题对吗?

不知您可否费心帮我看看, 或者给我一些思路也行, 我也好按图索骥, 有点儿方向.

现在我是没有思路, 不知道该检查哪里.

万分感谢.
回复

使用道具 举报

16

主题

1

好友

244

积分

中级会员

Rank: 3Rank: 3

板凳
发表于 2022-6-12 17:41:30 |显示全部楼层
另外我想到的一个思路, 不知道是否具有可行性:

既然无头浏览器有诸多被检测到的可能, 那么我可否使用真正的浏览器, 用损失效率换取一些万能的方法.
达到我可以用python萃取其中内容即可.

有时候并不是大量的取数据, 也许就是10来页的文章什么的,
大动干戈的研究网站防爬有点儿得不偿失.

如果能找到一个比挨个下载网页, 然后拷贝粘贴快一些的方式就好了.

不知道 先生 有什么建议?

感谢.
回复

使用道具 举报

16

主题

1

好友

244

积分

中级会员

Rank: 3Rank: 3

地板
发表于 2022-6-24 00:13:08 |显示全部楼层
感谢先生的回复,
最近忙还未尝试先生的建议
我打算稍后尝试一下鼠标模拟.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-7 15:19 , Processed in 0.017297 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部