如何在抓取时绕过Mod_安全性

2024-04-19 12:15:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用BeautifulSoup和requests模块运行此Python脚本:

from bs4 import BeautifulSoup as bs
import requests

url = 'https://udemyfreecourses.org/
headers = {'UserAgent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36'
}
soup = bs(requests.get(url, headers= headers).text, 'lxml')

但当我发送这条线路时:

print(soup.get_text())

它不会刮取文本数据,而是返回以下输出:

Not Acceptable!Not Acceptable!An appropriate representation of the requested resource could not be found on this server. This error was generated by Mod_Security.

我甚至在请求网页时使用了标题,因此它看起来像一个普通的导航器,但我仍然收到阻止我访问真实网页的消息

注意:该网页直接在导航器上运行得很好,但当我试图抓取它时,它不会显示太多信息

除了我在标题中使用的方法之外,还有其他方法可以从网站获得完全有效的请求,并绕过名为Mod_security的安全性吗

任何帮助都会非常有用,谢谢


Tags: 方法textimportmodurl网页标题get
1条回答
网友
1楼 · 发布于 2024-04-19 12:15:40

编辑:必须在“用户代理”中添加破折号

在这个答案之后https://stackoverflow.com/a/61968635/8106583

headers = {
     'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0',
}

您的用户代理就是问题所在。这个用户代理为我工作

另外:您的ip现在可能已被阻止:D

相关问题 更多 >