defcreate_db(self): host = 'localhost' user = 'root' password = '698350As?' port = 3306 db = pymysql.connect(host=host, user=user, password=password, port=port) cursor = db.cursor() sql = 'create database unversityrank default character set utf8' cursor.execute(sql) db.close() print('创建成功')
在上面的这段代码中可以看到我创建了一个名为unversityrank的数据库。
创建表格
defcreate_tables(self): host = 'localhost' user = 'root' password = '698350As?' port = 3306 db = 'unversityrank' db = pymysql.connect(host=host, user=user, password=password, port=port, db=db) cursor = db.cursor() sql = 'create table if not exists rank4 (id int auto_increment primary key,rankid varchar(255) not null, name varchar(255) not null, province varchar(255) not null, type varchar(255) not null, source varchar(255) not null)' cursor.execute(sql) db.close() print('创建成功')
.*?(.*?)', re.S) author = re.findall(pattern_author, html) datas = [list(data) for data in zip(title, funny, author)] return datas
在这里需要要求各位小伙伴具有正则表达式的基础,如果看不懂的话可以参考我前面写的文章。
关于翻页
# 第二页 https://www.qiushibaike.com/8hr/page/2/
# 第三页 https://www.qiushibaike.com/8hr/page/3/
看到上面的内容,想必大家已经非常明白,翻页之后URL的变化规律了吧。
保存数据
这次我们是将提取到的数据保存到csv文件里面,因此在开始之前先要导入csv模块.
import csv
保存数据的核心代码如下所示:
for page in range(1, 14): url = f'https://www.qiushibaike.com/8hr/page/{page}/' html = qiushi.get_html(url) datas = qiushi.parse_html(html) with open('data.csv', 'a', encoding='utf-8-sig') as f: writer = csv.writer(f) writer.writerow(['标题', '好笑', '作者']) for data in datas: writer.writerow(data)