python - driver.page_source 使用 Selenium 仅返回 meta name="ROBOTS" content="NOINDEX, NOFOLLOW"
问题描述
我想抓取一个网站,以使用以下代码获取页面内容:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
driver = webdriver.Remote("http://adress:4444/wd/hub", DesiredCapabilities.CHROME)
link = 'website_url'
driver.get(link)
s = driver.page_source
print((s.encode("utf-8")))
driver.quit()
这是收到的:
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
我也尝试了很多不同的方法,Luminati,proxy newipnow,phantomjs,但都不起作用,有什么建议我可以尝试解决这个问题吗?
解决方案
<meta name="ROBOTS" content="value">
这个元标签传达了不同的搜索引擎关于他们被允许和不允许在某个页面上执行的操作。此元标记可以放置在<head>
and</head>
标记内的任何位置。
注意:: 由于此<meta>
标签没有站点范围的效果,它可以在同一网站的不同页面上包含不同的值。
有效值为:
Index
(默认值)Noindex
None
Follow
Nofollow
Noarchive
Nosnippet
这些值也可以组合起来形成所需的有效元机器人标签。
例子:
<meta name="robots" content="noindex" />
<meta name="robots" content="index,follow" />
<meta name="robots" content="index,follow,noarchive" />
内容="NOINDEX,NOFOLLOW"
该NOINDEX
值表示搜索引擎不索引该页面,因此该页面不应显示在搜索结果中。该NOFOLLOW
值传达搜索引擎NOT
关注或发现此页面上链接到的页面。
Web 开发人员在开发网站上添加了NOINDEX、NOFOLLOW元机器人标签,因此搜索引擎意外地不会开始向仍在建设中的网站发送流量。
你为什么看?
原因可能是以下之一:
- 您正在尝试在Development Environment中执行您的自动化测试。
- 开发团队不小心将此标签添加到实时网站。
- 开发团队在上线后忘记将其从实时网站中删除。
参考
奥特罗
推荐阅读
- c# - 如何在 Core EF Code First 中将覆盖字段映射到数据库?
- windows - Tensorflow 2 无法在 Windows 10 上使用 bazel 进行编译 - 包名错误
- jquery - Jquery 函数和 ajax 在删除时重新加载
- symfony - Symfony 表单生成器。数组中的多选
- javascript - 为什么 app redux 在这个 reducer 中有错误?
- javascript - 在javascript中删除某些 - 以前未知 - 字符串的一部分
- reactjs - 如何在具有以下错误的反应寄存器上修复此错误
- c# - 如果任务被锁定,它会返回队列,还是也锁定线程?
- regex - 将此正则表达式限制为 129 个字符
- spring - 哪个日志框架可以逐行记录 Spring Boot 2.x 中执行的代码?