Robots协议

Robots协议(Robots Exclusion Protocol):称作爬虫协议、机器人协议,全称是网络爬虫排除标准(Robots Exclusion Protocol),用来告诉爬虫和搜索引擎可以抓取哪些页面。它通常是一个叫做robots.txt文件。

核心功能​:

​访问控制​​:屏蔽敏感目录(如后台/admin/、用户数据/user/

​资源优化​​:禁止抓取大文件(如图片、视频),节省服务器带宽

​SEO效率​:引导爬虫抓取高价值内容,避免索引低质页面(如死链、重复页)

robots.txt文件要求:

robots.txt文件必须放置在站点的根目录下(名字小写)

文件中的记录通常以一行或多行User-agent(用于描述受限制的robot的名字)开始,后面加上Disallow(用于描述不希望被访问到的URL)行。

当搜索爬虫访问一个站点时

1.检测站点根目录下是否存在robots.txt文件;

2.若robots.txt文件存在,爬虫会依据定义的爬取范围来爬取;

3.若robots.txt文件不存在,爬虫会访问所有可直接访问的页面。

基础指令​规则​

User-agent​:指定目标爬虫(*表示所有引擎)

Disallow​:禁止抓取的路径(如Disallow: /private/)。

Allow​:允许抓取的路径(常与Disallow配合使用,如Allow: /public/

​高级参数​:

Sitemap​:提交网站地图加速收录(如Sitemap: https://example.com/sitemap.xml

Crawl-delay​:设置爬虫请求间隔(如Crawl-delay: 10

​通配符应用​​:

*匹配任意字符(如Disallow: /*?*屏蔽动态URL)。

$匹配路径结尾(如Allow: /.htm$仅允许抓取.htm页面

示例

上面*代表没有权限所有人都可以Disallow代表这一类型的网站都不可爬取

查看robots协议:

 进入https://ziyuan.baidu.com/robots/index 输入要查的网址

一些常见的搜索爬虫的名称与对应的网站:

爬虫名称

名称

网站

BaiduSpider

百度

www.baidu.com

Googlebot

谷歌

www.google.com

360Spider

360搜索

www.so.com

YodaoBot

有道

www.youdao.com

ia_archiver

Alexa

www.alexa.cn

Scooter

altavista

www.altavista.com

txt文本存储

采集网页数据后,需要存储数据。可以直接保存为文本文件,还可以保存到数据库。

常见的文件存储形式:TXT文本存储; JSON文件存储; CSV文件存储; Office文件存储;

TXT文件存储优点: 操作简单; TXT文本几乎兼容任何平台。

TXT文件存储缺点: 数据检索不方便。

在Python中,操作文件需要先创建或者打开指定的文件并创建File对象,通过内置的open()函数实现 file = open (filename,mode,buffering)

filename:要创建或打开文件的文件名称;mode:默认打开模式为只读(r);buffering:用于指定读写文件的缓冲模式,值为0表示不缓冲,值为1表示缓冲,大于1 代表缓存区大小。

mode参数的参数值说明:

r表示只读r+读加写;w为只写w+读加写;a写入(追加)。

文件路径的常用形式有如下3种:

with open("d:\\yongzhou\\title.txt","a+") as f:

with open(r"d:\yongzhou\title.txt","a+") as f:

with open("d:/yongzhou/title.txt","a+") as f: 有时需要把几个变量写入txt文件中,这时分隔符就比较重要了。可以采用Tab进行分隔,用"\t".join()将变量连接成一个字符串。

csv文件存储

CSV,全称为 Comma-Separaed Values ,即逗号分隔值或字符分隔值,其文件以纯文本形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成。

字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符。 所有记录都有完全相同的字段序列 ,相当于一个结构化表的纯文本形式。

csv文件读取与写入

函数

说明

csv.reader()

读取CSV文件

csv.writer()

将数据写入CSV文件

csv.register_dialect()

dialectname联系起来

csv.unregister_dialect()

dialect注册表中删除与名称关联的dialect

csv.get_dialect

返回与name相关的dialect

csv.list_dialects()

返回所有已注册dialect的名称

csv.field_size_limit()

返回解析器允许的当前最大字段大小

csv.reader()函数: 

  csv.reader(csvfile,dialect ='excel',** fmtparams)

参数解释如下:            

csvfile:CSV文件;dialect:编码风格,默认为excel的风格,也就是用逗号(,)分隔,dialect方式也支持自定义,通过调用register_dialect方法来注册; fmtparam:格式化参数,用来覆盖之前dialect对象指定的编码风格。

应用

使用csv.reader()函数读取数据

import csv#导入
with open('./iris.csv','r') as csvfile:#读取文件目录下的csv文件命名为csvfile
    read = csv.reader(csvfile)
    for row in read:
        print(row)

读取结果这是读取的是鸢尾花数据集

使用csv.writer()函数具体语法如下:

import csv#导入
with open('data.csv','w') as csvfile:#打开datacsv文件并写入
    writer=csv.writer(csvfile)#作者写入
    writer.writerow(["id","name","age"])#若不想重复写writer.writerow可直接写writer.writerows
    writer.writerow(["10001","guo","20"])
    writer.writerow(["10002", "andy", "22"])
    writer.writerow(["10003", "feng", "25"])

 使用csv.writer()函数创建字典具体语法如下:

import pandas#导入
result_dict={"sNo":["179001","179002"],#创建字典
            "sName":["周勇","杨倩"],
            "sex":["男","女"]
}
path = "./teacher.csv"#保存路径
df=pandas.DataFrame(result_dict)
df.to_csv(path)

将数据存储为Excel文件

import pandas
result_dict={"sNo":["179001","179002"],
            "sName":["周勇","杨倩"],
            "sex":["男","女"]
}
path = "./teacher.xlsx"        #存储为.xlsx
df=pandas.DataFrame(result_dict)
df.to_excel(path)           

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐