爬虫的三步走:
- 模拟登陆
- 数据下载
- 数据存储
今天记录一下第三步~~
建数据库
建库建表。
要注意的问题:
- infoid 选择自动递增–主键
- contents的文本信息较多,应选择text
数据库链接
python中先导入pymysql
1 | import pymysql |
链接语句:
1 | connection = pymysql.connect(host='localhost', user='root', password='root', db='javaweb', charset='utf8',cursorclass=pymysql.cursors.DictCursor) |
注:指定编码为utf8时,没有-,别写成utf-8;
这样就可以链接到数据库,选择自己要插入数据的表javaweb。
插入数据
数据好插入,复杂的地方在于如何插入自己想要的数据,剔除掉不想要的数据。
1 | [s.extract() for s in tiao_bsObj.findAll('p', attrs={'class': "windowClose"})] |
这个的语句的意思是,去除指定标签下的所以内容。这里用于剔除睿思具体内容之前的编辑信息,以及就业信息网上的关闭窗口等等诸如此类不是正文的信息。
插入语句:
1 | cur.execute("INSERT INTO official (job,company,location,link) VALUES (%s,%s,%s,%s)", (J, C, L, K)) |
插入,提交。延时还是要做的,好像是之前访问数据库太快导致中断???
需要注意的是,表里列的名称要写对,以及VALUES的个数,还有后面要插入的数据与之前的一一对应。
在navicat(数据库管理工具)中的显示:
程序及数据库的更新
在00:00(即晚12点)自动更新,需要注意的是00:00没有秒,所以要加延时,保证后面的函数在1分钟后执行完,不然会重复执行;
1 | while True: |