因此,我创建了一个 Django 网站来从网络上抓取新闻网页以获取文章。即使我使用 mechanize,他们仍然告诉我:
HTTP Error 403: request disallowed by robots.txt
Run Code Online (Sandbox Code Playgroud)
我尝试了一切,看看我的代码(只是要抓取的部分):
br = mechanize.Browser()
page = br.open(web)
br.set_handle_robots(False)
br.set_handle_equiv(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
#BeautifulSoup
htmlcontent = page.read()
soup = BeautifulSoup(htmlcontent)
Run Code Online (Sandbox Code Playgroud)
我也尝试在 set_hande_robots(Flase) 等之前使用 de br.open 。它也不起作用。
有什么办法可以通过这个网站吗?
我想在 Express 中使用 robots.txt 文件中的一些变量。
如何将此文件呈现为 EJS 模板?我已经让 EJS 可以处理 .html 文件。
app.route('/robots.txt')
.get(index.robotstxt);
/**
* Send robotstxt file
*/
exports.robotstxt = function (req, res) {
res.type('text/plain');
res.render('robots.txt', {
home: config.home
});
};
# robotstxt.org
User-agent: *
Disallow: /settings
Disallow: /account/
Allow: /
sitemap: <%= home %>/sitemap.xml
Run Code Online (Sandbox Code Playgroud)
目前,我刚刚收到以下错误:
Error: Cannot find module 'txt' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at new View (/Users/user/projects/app/node_modules/express/lib/view.js:43:49) at Function.app.render (/Users/user/projects/app/node_modules/express/lib/application.js:484:12) at ServerResponse.res.render (/Users/user/projects/app/node_modules/express/lib/response.js:777:7) at Object.exports.robotstxt [as handle] (/Users/user/projects/app/lib/controllers/index.js:29:6) …
Run Code Online (Sandbox Code Playgroud) 我正在使用robotparser
Python 中的 urlib 模块来确定是否可以下载网页。然而,当通过默认用户代理访问 robots.txt 文件时,我正在访问的一个站点会返回 403 错误,但如果通过使用我的用户代理字符串的请求下载,则会返回正确的响应。(当使用请求包默认用户代理访问时,该网站还会给出 403,表明它们只是阻止常见/通用用户代理字符串,而不是将它们添加到 robots.txt 文件中)。
无论如何,是否可以更改 rootparser 模块中的用户代理?或者,加载单独下载的 robots.txt 文件?
我正在使用 Heroku 管道。因此,当我推送应用程序时,它会被推送到暂存应用程序
https://appname.herokuapp.com/
Run Code Online (Sandbox Code Playgroud)
如果一切正确,我就会将该应用程序推广到生产环境。没有新的构建过程。这是第一次构建用于登台的同一个应用程序。
https://appname.com/
Run Code Online (Sandbox Code Playgroud)
问题是这会导致重复内容的问题。站点是彼此的克隆。一模一样。我想从 Google 索引和搜索引擎中排除暂存应用程序。
我想到的一种方法是使用robots.txt文件。
为了这个工作我应该这样写
User-agent: *
Disallow: https://appname.herokuapp.com/
Run Code Online (Sandbox Code Playgroud)
使用绝对路径,因为该文件将位于暂存和生产应用程序的服务器上,我只想从 Google 索引中删除暂存应用程序,而不是触及生产应用程序。
这是正确的做法吗?
我的网站内容有限.我希望我的网站出现在搜索结果中,但我不希望它公开.
有没有办法允许抓取工具抓取我的网站,但阻止他们公开?
我找到的最接近的解决方案是Google First Click Free,但它甚至要求我第一次显示内容.
我试图解析一个如下所示的txt文件:
Disallow: /cyberworld/map/ # This is an infinite virtual URL space
Disallow: /tmp/ # these will soon disappear
Disallow: /foo.html
Run Code Online (Sandbox Code Playgroud)
我需要读取文件并在"Disallow"之后用url提取部分,但也忽略了注释.提前致谢.
如果我希望搜索引擎遵循我的 robots.txt 规则,我有点困惑是否应该删除 robots 元标记。
如果页面上存在 robots 元标记(索引、follow),搜索引擎是否会忽略我的 robots.txt 文件并在我的 robots.txt 中索引指定的不允许的 URL?
我问这个问题的原因是搜索引擎(主要是谷歌)仍然索引我网站上不允许的页面。
我在robots.txt文件中使用此代码:
User-agent: *
Disallow:
Run Code Online (Sandbox Code Playgroud)
但是,我的竞争对手正在使用
User-agent: *
Disallow: /
Run Code Online (Sandbox Code Playgroud)
他的网站在谷歌和排名第一的表现都很好.但我的网站没有排名.我检查了我网站上的所有内容,没关系.但是我的竞争对手在Google中表现如何?robots.txt文件无关紧要吗?
我正在制作我的 robots.txt 文件。但我对如何禁用 Googlebot-Image 有点不安全。我想允许谷歌机器人抓取我的网站,除了我在下面做的禁止。这是我做的:
User-agent: Googlebot
Disallow:
Disallow: /courses/
Disallow: /portfolio/portfolio-template.php/
User-agent: Googlebot-Image
Disallow:
/images/graphics/erhvervserfaring/
/images/graphics/uddannelse/
sitemap: http://www.example.com/sitemap.xml
Run Code Online (Sandbox Code Playgroud)
应该将 User-agent:Googlebot
和User-agent: Googlebot-Image
写在一起,所以是这个?:
用户代理:Googlebot-Image 用户代理:Googlebot 禁止:
Disallow: /courses/
/portfolio/portfolio-template.php/
/images/graphics/erhvervserfaring/
/images/graphics/uddannelse/
Run Code Online (Sandbox Code Playgroud) 我在这里看到了其他答案,但它们并没有真正的帮助,这就是我问的原因。我也尝试了 django-robots 框架,但是当我将“机器人”放入 INSTALLED_APPS 时,它给了我一个错误
INSTALLED_APPS = [
'index.apps.IndexConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sitemaps',
]
Run Code Online (Sandbox Code Playgroud) 在 Vue (3.4) 应用程序中,我在文件夹的根目录下创建了一个 robots.txt 文件。我已经使用 robots.txt 文件部署了我的网站,但在输入 URL https://www.example.com/robots.txt/时找不到它,我收到 404。
robots.txt ×11
seo ×4
python ×3
django ×2
web-crawler ×2
express ×1
heroku ×1
javascript ×1
mechanize ×1
meta-tags ×1
node.js ×1
noindex ×1
parsing ×1
python-3.x ×1
sitemap ×1
vue.js ×1
web-scraping ×1