day22-python-spider
day22-python-spider
python
pymysql
基本使用
- 链接数据库
connect=pymysql.connect(host=host,user=username,password=password,database=database)
localhost:本地 MySQL 服务端地址,也可以是远程数据库的 IP 地址。
root:连接数据所使用的用户名。
password:连接数据库使用的密码,本机 MySQL 服务端密码“123456”。
db:连接的数据库名称。
- 创建cursor对象
cursor=connect.cursor()
- 执行slq语句
sql = 'insert into filmtab values(%s,%s,%s)'
cursor.execute(sql,['刺杀,小说家','雷佳音','2021'])
列表传参
- 事务提交
connect.commit()
- 关闭连接
connect.close()
插入多条数据
# sql语句执性,列表元组
info_list = [('我不是药神','徐峥','2018-07-05'),('你好,李焕英','贾玲','2021-02-12')]
sql = 'insert into movieinfo values(%s,%s,%s)'
cursor.executemany(sql,info_list)
抓取多级页面
爬虫增量爬取
爬虫是一种效率很低的程序,非常消耗计算机资源。对于聚焦爬虫程序而言,需要每天对特定的网站进行数据抓取,如果每次都去抓取之前已经抓取过的数据,就会白白消耗了时间和资源。而增量爬虫是指通过监测网站更新的情况,只抓取最新数据的一种方式,这样就大大降低了资源的消耗。
那么要如何判断爬虫程序是否已抓取过二级页面的 url 呢?其实,当您第一次运行爬虫程序时,爬虫会将所有的 url 抓取下来,然后将这些 url 放入数据库中。为了提高数据库的查询效率,您可以为每一个 url 生成专属的“指纹”。当网站更新后,第二次运行爬虫程序时,程序只会对数据库中不存在的指纹进行抓取。
解决思路:
创建一个记录已爬取的url数据表
当对一个url进行爬取的时候,到数据库中查找是否已存在
不存在就开始爬取,并且把当前的url插入到数据库中
已存在就跳过
问题:
如果页面内容进行更新,如何解决?
Requests库
这个库的宗旨就是 让HTTP服务于人类
- 安装
pip install requests
常用的请求方法
- requests.get()
该方法用于get请求,表示向网页发起请求,获取页面响应对象。
res=requests.get(url,headers=headers,params,timeout)
参数说明
url 要抓取的url地址
headers 用于包装请求头的信息
params 请求时携带的查询字符串参数
timeout 超时时间,c

浙公网安备 33010602011771号