维基百科 mysql_把维基百科首页词条的数据导入mysql【Python】
title: 把維基百科首頁詞條的數據導入mysql【Python】
date: 2016-09-13 0:59:28
tags:
1、此文是跟著上一篇來寫的,之前,已經完成了對維基百科詞條的數據采集工作。
2、本文和作者示范不同的地方是,建立數據庫和表格的工具我維持使用了sqlyog軟件,作者用的是哪個不確定,因為視頻看不清上面的名字。
3、代碼如下,已經有一定說明,原作者可沒提供代碼哦,請把password對應的密碼部分,從xxxx修改成你的真實數據庫密碼:
__author__ = 'Administrator'
# coding:utf-8
# 運行在python 3.5.2
import re
from urllib.request import urlopen
from bs4 import BeautifulSoup as bs
import pymysql.cursors
# 使用urllib的urlopen方法,去打開維基百科的首頁,讀取,并用utf-8解碼
resp = urlopen('https://en.wikipedia.org/wiki/Main_Page').read().decode('utf-8')
# 使用BeautifulSoup去解析,其中html.parser是默認的解析器
soup = bs(resp, 'html.parser')
# 獲取所有的/wiki/開頭的a標簽的href屬性。
listUrls = soup.find_all('a', href=re.compile(r'^/wiki/'))
print(listUrls)
# 輸出所有的詞條對應的名稱和URL
for url in listUrls:
# 排除.jpg JPG結尾的
if not re.search('\.(jpg|JPG)$', url['href']):
# 顯示名稱和網址的格式
# string只能顯示一個,而get_text()可顯示標簽下所有的文字。
print(url.get_text(), '', 'https://en.wikipedia.org'+url['href'])
# 得到數據庫的連接
connection = pymysql.connect(host='localhost',
user='root',
password='xxxx',
db='wikiurl',
charset='utf8'
)
try:
# 創建會話指針
with connection.cursor() as cursor:
# 創建sql語句
sql = 'insert into `urls` (`urlname`, `urlhref`) values(%s, %s)'
# 執行sql語句
cursor.execute(sql, (url.get_text(), 'https://en.wikipedia.org' + url['href']))
# 提交
connection.commit()
finally:
connection.close()
4、其中關鍵的步驟有:
A):sqlyog中表格的制作和設置,千萬注意,id的int類型,需要添加自增,否則運行程序會報錯: "Field 'id' doesn't have a default value
B)數據庫的插入和執行命令,因為不太熟悉,對著視頻敲代碼都錯誤了幾次,并且要注意以下代碼urls (urlname, urlhref)使用的是Tab鍵上面的那個上點號
C)當程序沒有報錯,在sqlyog查看表格要先刷新
D)在之前的帖子,是在python2.7下,通過sqlyog的import MySQLdb 來操作mysql的,并且,代碼中的密碼對應的是passwd,而這個和直接用python 運行pymysql的對應命令password是不同的,要分清楚。
5、結果圖,有一絲喜悅感:
總結
以上是生活随笔為你收集整理的维基百科 mysql_把维基百科首页词条的数据导入mysql【Python】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于打码机色带应用及其调整方法
- 下一篇: MA、WMA、EMA、EXPMA区别及公