将网上爬取的数据放进数据库

来源:互联网 发布:java valueof方法 编辑:程序博客网 时间:2024/05/15 12:25
#encoding=utf-8import urllib2import refrom bs4 import BeautifulSoupimport sysreload(sys)sys.setdefaultencoding("utf8")html=urllib2.urlopen('http://movie.douban.com/top250?format=text').read()soup=BeautifulSoup(html,'html.parser')h1=soup.select('#content > h1')name=soup.select('.article > ol > li > .item > .info > .hd > a > span:nth-of-type(1)')comment=soup.select('.article > ol > li > .item > .info > .bd > .star > .rating_num')p=soup.select('.article > ol > li > .item > .info > .bd > .star > span')people=[]link=soup.select('.article > ol > li > .item > .info > .hd > a')for i in range(len(p)+1):    if i%4==0:        if i!=0:            people.append(p[i-1])import MySQLdbconn=MySQLdb.connect(    host='localhost',    user='root',    passwd="",    port=3306,    db='t',  #数据库的名字    charset='utf8' #数据库默认编码方式,方便显示中文)cur=conn.cursor()#创建游标cur.execute("create table movie(id int primary key auto_increment,name varchar(100),rate float,comment varchar(100),link varchar(100))")n=[]f=[]pe=[]l=[]for i in range(len(name)):    n.append(unicode(name[i].text).encode('utf-8'))    f.append(unicode(comment[i].text).encode('utf-8'))    pe.append(unicode(people[i].text).encode('utf-8'))    l.append(unicode(link[i].get('href')).encode('utf-8'))for i in range(len(n)): cur.execute("insert into movie(name,rate,comment,link)values(%s,%s,%s,%s)",(n[i],f[i],pe[i],l[i]))cur.close()#关闭游标conn.commit()#提交就算在数据里真正插入数据conn.close()

如果在cmd里显示不了中文应如下步骤

1,net stop mysql

2,找到mysql下的my.ini(如果没有,复制my-medium.ini然后在修改名字即可)


3,在 my.ini里

[client]port=3306default-character-set=utf8[mysqld]port=3306character_set_server=utf8basedir=E:\mysql-5.6.24-win32datadir=E:\mysql-5.6.24-win32\data
自己根据自己的目录来

4,添加环境变量--在path里加入

E:\mysql-5.6.24-win32;

千万要记得后面的;号,英文版的

5,在cmd里进入到bin目录下

cd E:\mysql-5.6.24-win32\bin
mysql install MySQL --defaults-file="E:\mysql-5.6.24-win32\my.ini"
6,启动服务器

net start mysql

然后数据库里就不乱了





原创粉丝点击