安装MySQL。使用phpStudy集成工具来安装MySQL服务器,或者可以用USBwebserve进行安装。
打开USBwebserve,界面如下
当Apache和Mysql都是绿色勾勾时,直接点击PHPMyAdmin,进入界面:
输入帐号-密码后点击执行:
MySQL安装到此结束。
--------------------------------------
这边采用的数据是爬取糗事百科,获得其用户名及对应的糗事。输出到终端,并且存到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服务器错误)。
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()
在输出时,发现会遇到各种编码问题,在这里说一下解决方法:
1、找到pymysql模块的目录,一般位于....\python\Lib\site-packages\pymysql里的connections.py的文件,用编译器打开,搜索关键词“charset=”,将编码格式改为"utf8"。
2、在phpadmin控制面板中,点击“数据库-(对应的表)-结构-(勾选相应的栏)-修改-整理处改为utf-8”,具体如下: