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