Python请求与robots.tx

2024-05-19 11:04:43 发布

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

我有一个用于个人使用的脚本,它可以收集一些网站上的信息,直到最近它工作得还不错,但似乎其中一个网站增强了它的安全性,我再也无法访问它的内容。

我使用python处理请求并美化组来收集数据,但是当我试图用请求获取网站的内容时,我遇到了以下情况:

'<html><head><META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"></head><iframe src="/_Incapsula_Resource?CWUDNSAI=9_4E402615&incident_id=133000790078576866-343390778581910775&edet=12&cinfo=4bb304cac75381e904000000" frameborder=0 width="100%" height="100%" marginheight="0px" marginwidth="0px">Request unsuccessful. Incapsula incident ID: 133000790078576866-343390778581910775</iframe></html>'

我做了一些研究,看起来这就是阻止我的原因:http://www.robotstxt.org/meta.html

有什么方法可以让网站相信我不是一个恶意机器人吗?这是一个脚本,我每天在一个源代码位上运行~1次,所以我对他们的服务器没有任何负担。只是一个有脚本让事情变得简单的人:)

编辑:尝试切换到mechanize并忽略robots.txt,但没有收到403禁止的响应。我想他们已经改变了刮擦的立场,还没有更新TOS。到了计划B的时候了,除非有人有其他想法,否则不要再使用这个网站。


Tags: 数据name脚本信息内容网站html情况
1条回答
网友
1楼 · 发布于 2024-05-19 11:04:43

最有可能发生的是服务器正在检查机器人使用的user-agent并拒绝访问默认的user-agent

例如requestsuser-agent设置为类似python-requests/2.9.1的值

你可以自己指定标题。

url = "https://google.com"
UAS = ("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1", 
       "Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0",
       "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0",
       "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
       "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36",
       "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36",
       )

ua = UAS[random.randrange(len(UAS))]

headers = {'user-agent': ua}
r = requests.get(url, headers=headers)

相关问题 更多 >

    热门问题