请教大佬们:我用 selemium 爬虫这个网站,打开网页就报错 403forbidden

2023-10-14 17:08:52 +08:00
 ChatGPTPRO

如题,大佬们

https://moscow.online.lenta.com/

这个网站,用 selemium 爬这个网站,driver.get 打开网页就报错 403forbidden

有没有大佬教教小弟,感谢

2431 次点击
所在节点    程序员
18 条回复
youngce
2023-10-14 17:34:27 +08:00
chagtgpt3.5 如是说道:

当使用 Selenium 访问网站时遇到 403 错误(禁止访问)通常是因为网站检测到了你的请求不是来自一个正常的浏览器用户,而是来自一个自动化脚本或机器人。为了解决这个问题,你可以考虑以下几种方法:

1. **使用合适的 User-Agent**:User-Agent 是 HTTP 请求头中的一部分,它描述了你所使用的浏览器和操作系统。有时候,网站会检查 User-Agent ,如果它看起来像是来自一个爬虫或机器人的话,就会拒绝访问。你可以设置 User-Agent 来模仿一个正常的浏览器请求。

```python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36")

driver = webdriver.Chrome(chrome_options=options)
```

2. **使用代理**:使用代理服务器可以隐藏你的真实 IP 地址,有时可以帮助绕过 IP 封锁或访问限制。请注意,不要违反网站的使用政策或法律法规。

3. **减慢请求速度**:有些网站可能会检测到你的请求速度过快,从而认定你是机器人。你可以在 Selenium 中添加等待时间,模拟人类的浏览行为。

```python
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待元素可见
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myElement"))
)
```

4. **使用 Selenium 的无头模式**:无头浏览器模式不会打开可见的浏览器窗口,这可能会降低被检测到的风险。

```python
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
```

5. **遵守网站的使用政策**:最重要的是确保你的爬虫或机器人不会滥用网站,遵守网站的使用政策和 Robots.txt 文件中的规则。

请注意,网站可以随时更改其反爬虫措施,所以你可能需要不断调整你的策略以应对这些变化。同时,确保你的爬取是合法的,不会侵犯版权或隐私等法律法规。
ChatGPTPRO
2023-10-14 17:47:34 +08:00
@youngce 感谢,但是其实我也问过 GPT 了,没啥用😂😂
Rang666
2023-10-14 19:12:19 +08:00
应该就是反爬了,看看正常的请求再看看 selenium 的请求对比一下呗
ChatGPTPRO
2023-10-14 19:15:37 +08:00
@Rang666 反爬有方式解决吗 大佬
zzNucker
2023-10-14 19:40:42 +08:00
@youngce 千万不要帖 gpt 回答的内容,你是想被封号吗
ChatGPTPRO
2023-10-14 19:46:05 +08:00
@zzNucker 大佬 这个论坛不给贴吗?
zzNucker
2023-10-14 19:48:03 +08:00
@ChatGPTPRO 不要贴 站长说过的
ChatGPTPRO
2023-10-14 19:48:37 +08:00
@zzNucker 好的大佬 这个反爬咋弄你会吗
zzNucker
2023-10-14 19:51:11 +08:00
一个个 header 对比,还不行就是 js 里加了探测了
ShineyWang
2023-10-14 20:11:25 +08:00
copy 请求的 curl
导入到 postman 里面
然后一个一个勾 header 就知道服务端判断哪些条件了

测试成功后再导出成你要的语言代码即可
chesha1
2023-10-14 21:06:30 +08:00
我之前也遇到过类似问题,我已经把 chrome f12 生成的请求头复制成 curl ,所有 headers 全都写到爬虫里了,结果还是 403 ,不清楚什么原因
testonly
2023-10-14 21:38:14 +08:00
对方直接侦查到你使用 selemium 吧。据我所知有些大站是可以做到的,这些站有没技术做到我不清楚了。

@zzNucker 现在 GOOGLE 忙着反 AI ,大量 AI 内容可能会被 GOOGLE 惩罚,不知道是否是这原因。
mmdsun
2023-10-14 22:00:50 +08:00
搜关键词:selemium 隐藏特征。记得有个开源脚本引入项目 selemium 特征就被隐藏没有了。
among
2023-10-14 22:05:56 +08:00
ChicC
2023-10-14 23:30:56 +08:00
window.navigator.webdriver
shalingye
2023-10-15 00:31:28 +08:00
@youngce 前几天有个 16 年的号和你一模一样,然后有人叫了站长,号就没了,尽管楼下都为他说情。
MeteorVIP
2023-10-15 08:11:43 +08:00
你这个厉害,我只会用 uibot 获取网页上需要的内容
flyqie
2023-10-15 12:13:04 +08:00
@youngce #1

以前有帮你百度,现在有帮你 GPT 。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/981974

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX