在Python中更改与robotparser一起使用的用户代理

2024-09-27 18:22:22 发布

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

我正在使用Python中urlib模块中的robotparser来确定是否可以下载网页。但是,当机器人.txt文件是通过默认的用户代理访问的,但是如果是通过请求下载的,则响应是正确的。(当使用请求包访问时,该站点还提供了一个403默认用户代理,这表明它们只是阻止通用/通用用户代理字符串,而不是将它们添加到机器人.txt文件)。在

无论如何,可以在rootparser模块中更改用户代理吗?或者,加载一个机器人.txt文件单独下载?在


Tags: 模块文件字符串用户txt网页代理站点
1条回答
网友
1楼 · 发布于 2024-09-27 18:22:22

没有获取的选项机器人.txt对于使用RobotFileParser的用户代理,但您可以自己获取它并将字符串数组路径传递到parse()方法:

from urllib.robotparser import RobotFileParser
import urllib.request

rp = RobotFileParser()


with urllib.request.urlopen(urllib.request.Request('http://stackoverflow.com/robots.txt',
                                                   headers={'User-Agent': 'Python'})) as response:
   rp.parse(response.read().decode("utf-8").splitlines())

print(rp.can_fetch("*", "http://stackoverflow.com/posts/"))

相关问题 更多 >

    热门问题