安装MySQL。使用phpStudy集成工具来安装MySQL服务器,或者能够用USBwebserve进行安装。php
打开USBwebserve,界面以下python
当Apache和Mysql都是绿色勾勾时,直接点击PHPMyAdmin,进入界面:mysql
输入账号-密码后点击执行:web
MySQL安装到此结束。sql
--------------------------------------数据库
这边采用的数据是爬取糗事百科,得到其用户名及对应的糗事。输出到终端,而且存到MySQL中。服务器
上代码:工具
#-*- coding-8 -*- import pymysql import requests import lxml from bs4 import BeautifulSoup def craw(url,page = '1'): user_agent = 'Mozilla/4.0 (compatible; MISE 5.5; Windows NT)' headers = {'User_Agent':user_agent} url_text = requests.get(url,headers = headers) if url_text.status_code != 200: url_text.encoding = 'utf-8' print('ERROR') soup = BeautifulSoup(url_text.text,'lxml') contents = soup.select(r'.content') names = soup.find_all('h2') n = 1 conn = pymysql.connect(host='localhost',port=3307,user='root',password='usbw',db='toutiao',charset='utf8') conn.query(" CREATE TABLE data (name CHAR(20),content CHAR(30))") cursor = conn.cursor() for content,name in zip(contents,names): print('第%s趣事'%n) n += 1 name = name.get_text() content = content.get_text() print('用户名:'+name+'内容:'+content) cursor.execute(" INSERT INTO data (name,content) VALUES('{0}','{1}')".format(name,content)) conn.commit() cursor.close() conn.close() if __name__ == '__main__': url = r'https://www.qiushibaike.com/' s1 = craw(url)
导入对应模块,pymysql是python代码操做MySQL数据库的模块,能够经过pip install pymysql安装pymysql模块。编码
import pymysql import requests import lxml from bs4 import BeautifulSoup
设置头文件,requests请求访问糗事百科,经过status_code返回的值能够判断请求是否成功若是返回的code不是200的话则说明访问不成功(200请求成功,303从新定向,400请求错误,401未受权,403禁止访问,404文件未找到,500服务器错误)。url
def craw(url,page = '1'): user_agent = 'Mozilla/4.0 (compatible; MISE 5.5; Windows NT)' headers = {'User_Agent':user_agent} url_text = requests.get(url,headers = headers) if url_text.status_code != 200: url_text.encoding = 'utf-8' print('ERROR')
而后使用BeautifulSoup进行解析,使用的是lxml解析器,提取出糗事百科网的用户与对应的内容,分别用的是CSS选择器和find_all方法。
soup = BeautifulSoup(url_text.text,'lxml') contents = soup.select(r'.content') names = soup.find_all('h2') n = 1
链接MySQL,host:主机ip,port:端口,user:用户名,password:密码,db:数据库名称,charset:编码。经过query执行后面的SQL语句,而后建立一个表table和一个游标curser。
conn=pymysql.connect(host='localhost',port=3307,user='root',password='usbw',db='toutiao',charset='utf8') conn.query(" CREATE TABLE data (name CHAR(20),content CHAR(100))") cursor = conn.cursor()
用for语句,逐一输出到终端显示,利用游标curser执行后面的SQL语句,插入对应的用户与数据,而后commit()提交事务,关闭游标,关闭数据库连接。
for content,name in zip(contents,names): print('第%s趣事'%n) n += 1 name = name.get_text() content = content.get_text() print('用户名:'+name+'内容:'+content) cursor.execute(" INSERT INTO data (name,content)VALUES('{0}','{1}')".format(name,content)) conn.commit() cursor.close() conn.close()
在输出时,发现会遇到各类编码问题,在这里说一下解决方法:
一、找到pymysql模块的目录,通常位于....\python\Lib\site-packages\pymysql里的connections.py的文件,用编译器打开,搜索关键词“charset=”,将编码格式改成"utf8"。
二、在phpadmin控制面板中,点击“数据库-(对应的表)-结构-(勾选相应的栏)-修改-整理处改成utf-8”,具体以下: