3-26

266 阅读2分钟

反防爬

技巧一:

设置下载等待时间/下载频率 大规模集中访问对服务器的影响较大,爬虫可以短时间增大服务器负载。这里需要注意的是:设定下载等待时间的范围控制,等待时间过长,不能满足短时间大规模抓取的要求,等待时间过短则很有可能被拒绝访问,注意设置超时和连接connect超时。

技巧二:

修改User-Agent ** User-Agent是指包含浏览器信息、操作系统信息等的一个字符串,也称之为一种特殊的网络协议。服务器通过它判断当前访问对象是浏览器、邮件客户端还是网络爬虫。在request.headers里可以查看user-agent,关于怎么分析数据包、查看其User-Agent等信息,这个在前面的文章里提到过。具体方法可以把User-Agent的值改为浏览器的方式,甚至可以设置一个User-Agent池(list,数组,字典都可以),存放多个“浏览器”,每次爬取的时候随机取一个来设置request的User-Agent,这样User-Agent会一直在变化,防止被墙。

技巧三:

修改IP其实微博识别的是IP,不是账号。也就是说,当需要连续抓取很多数据的时候,模拟登录没有意义。只要是同一个IP,不管怎么换账号也没有用,主要的是换IP。web server应对爬虫的策略之一就是直接将IP或者整个IP段都封掉禁止访问,当IP被禁封后,转换到其他IP继续访问即可。方法:代理IP、本地IP数据库(使用IP池)。ip池要钱555555,有没有免费的啊5555

sql语句

建表

  • SQL CREATE TABLE 语法
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)

数据类型(data_type)规定了列可容纳何种数据类型。

  • integer(size), int(size),smallint(size),tinyint(size)

    仅容纳整数。在括号内规定数字的最大位数。

  • decimal(size,d) numeric(size,d)

    容纳带有小数的数字。

  • "size"

    规定数字的最大位数。"d" 规定小数点右侧的最大位数。

  • char(size)

    容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。

    在括号中规定字符串的长度。

  • varchar(size)

    容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。

    在括号中规定字符串的最大长度。

  • date(yyyymmdd) 容纳日期。

实例

CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

INSERT INTO 语句

INSERT INTO 表名称 VALUES (值1, 值2,....)

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

插入新的行

INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')