刮痧前需要研究
如果您的目标是从网站抓取数据,我们需要了解它的规模和结构。以下是我们在开始网络抓取之前需要分析的一些文件。
分析 robots.txt
实际上,大多数发布者都允许程序员在一定程度上抓取他们的网站。换句话说,发布者希望抓取网站的特定部分。为了定义这一点,网站必须制定一些规则来说明哪些部分可以被抓取,哪些部分不能。此类规则在名为的文件中定义robots.txt.
robots.txt是人类可读的文件,用于识别允许和不允许爬虫抓取的网站部分。robots.txt 文件没有标准格式,网站发布者可以根据需要进行修改。我们可以通过在该网站的 url 后提供斜杠和 robots.txt 来检查特定网站的 robots.txt 文件。例如,如果我们想检查 Google.com,那么我们需要输入
https://www.google.com/robots.txt,我们会得到如下信息 -
在网站的 robots.txt 文件中定义的一些最常见的规则如下 -
上述规则意味着 robots.txt 文件向爬虫询问BadCrawler用户代理不要抓取他们的网站。
上述规则意味着 robots.txt 文件在所有用户代理的下载请求之间延迟爬虫 5 秒,以避免服务器过载。这/trap链接将尝试阻止跟踪不允许链接的恶意爬虫。网站发布者可以根据他们的要求定义更多规则。其中一些在这里讨论 -
分析站点地图文件
站点地图文件的内容
上述内容表明,站点地图列出了网站上的 URL,并进一步允许网站管理员指定一些附加信息,如上次更新日期、内容更改、URL 相对于其他 URL 的重要性等关于每个 URL。
网站的大小是多少?
网站的大小,即网站的网页数量是否会影响我们抓取的方式?当然可以。因为如果我们要抓取的网页数量较少,那么效率不会是一个严重的问题,但是假设我们的网站有数百万个网页,例如Microsoft.com,那么顺序下载每个网页需要几个月的时间,那么效率将是一个严重的问题。
检查网站大小
您可以看到大约有 60 个结果,这意味着它不是一个大网站,爬网不会导致效率问题。
网站使用哪种技术?
另一个重要的问题是网站使用的技术是否会影响我们的抓取方式?是的,有影响。但是我们如何检查网站使用的技术呢?有一个名为的 Python 库builtwith借助它,我们可以了解网站使用的技术。
例子
现在,借助以下简单的代码行,我们可以检查特定网站使用的技术 -
谁是网站的所有者?
网站的所有者也很重要,因为如果所有者以阻止爬虫而闻名,那么爬虫在从网站上抓取数据时必须小心。有一个协议名为Whois借助它,我们可以找到有关网站所有者的信息。
例子
现在,借助以下简单的代码行,我们可以检查特定网站使用的技术 -