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

207 天前
 ChatGPTPRO

如题,大佬们

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

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

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

2150 次点击
所在节点    程序员
18 条回复
youngce
207 天前
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
207 天前
@youngce 感谢,但是其实我也问过 GPT 了,没啥用😂😂
Rang666
207 天前
应该就是反爬了,看看正常的请求再看看 selenium 的请求对比一下呗
ChatGPTPRO
207 天前
@Rang666 反爬有方式解决吗 大佬
zzNucker
207 天前
@youngce 千万不要帖 gpt 回答的内容,你是想被封号吗
ChatGPTPRO
207 天前
@zzNucker 大佬 这个论坛不给贴吗?
zzNucker
207 天前
@ChatGPTPRO 不要贴 站长说过的
ChatGPTPRO
207 天前
@zzNucker 好的大佬 这个反爬咋弄你会吗
zzNucker
207 天前
一个个 header 对比,还不行就是 js 里加了探测了
ShineyWang
207 天前
copy 请求的 curl
导入到 postman 里面
然后一个一个勾 header 就知道服务端判断哪些条件了

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

@zzNucker 现在 GOOGLE 忙着反 AI ,大量 AI 内容可能会被 GOOGLE 惩罚,不知道是否是这原因。
mmdsun
207 天前
搜关键词:selemium 隐藏特征。记得有个开源脚本引入项目 selemium 特征就被隐藏没有了。
among
207 天前
ChicC
207 天前
window.navigator.webdriver
shalingye
207 天前
@youngce 前几天有个 16 年的号和你一模一样,然后有人叫了站长,号就没了,尽管楼下都为他说情。
MeteorVIP
207 天前
你这个厉害,我只会用 uibot 获取网页上需要的内容
flyqie
206 天前
@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