1. 程式人生 > >網頁資料儲存mysql資料庫過程問題及解決

網頁資料儲存mysql資料庫過程問題及解決

#coding:utf-8
from bs4 import BeautifulSoup
import pymysql
import sqlite3
import sys
import importlib

importlib.reload(sys)

html = """
<ul class="nav_child"><li><a itemid="39" class="child_link" href="/list-39-1.shtml">北京</a></li>
<li><a itemid="59" class="child_link" href="/list-59-1.shtml">天津</a></li>
<li><a itemid="77" class="child_link" href="/list-77-1.shtml">河北</a></li>
<li><a itemid="80" class="child_link" href="/list-80-1.shtml">河南</a></li>
<li><a itemid="42" class="child_link" href="/list-42-1.shtml">山東</a></li>
<li><a itemid="88" class="child_link" href="/list-88-1.shtml">山西</a></li>
<li><a itemid="97" class="child_link" href="/list-97-1.shtml">內蒙古</a></li>
<li><a itemid="58" class="child_link" href="/list-58-1.shtml">遼寧</a></li>
<li><a itemid="52" class="child_link" href="/list-52-1.shtml">吉林</a></li>
<li><a itemid="82" class="child_link" href="/list-82-1.shtml">黑龍江</a></li>
</ul>
<ul class="nav_child"><li class="child_hd"></li>
<li><a itemid="41" class="child_link" href="/list-41-1.shtml">上海</a></li>
<li><a itemid="65" class="child_link" href="/list-65-1.shtml">江蘇</a></li>
<li><a itemid="61" class="child_link" href="/list-61-1.shtml">浙江</a></li>
<li><a itemid="78" class="child_link" href="/list-78-1.shtml">安徽</a></li>
<li><a itemid="90" class="child_link" href="/list-90-1.shtml">江西</a></li>
</ul>
<ul class="nav_child"><li class="child_hd"></li>
<li><a itemid="44" class="child_link" href="/list-44-1.shtml">廣東</a></li>
<li><a itemid="79" class="child_link" href="/list-79-1.shtml">廣西</a></li>
<li><a itemid="56" class="child_link" href="/list-56-1.shtml">湖南</a></li>
<li><a itemid="46" class="child_link" href="/list-46-1.shtml">湖北</a></li>
<li><a itemid="92" class="child_link" href="/list-92-1.shtml">福建</a></li>
<li><a itemid="hn" class="child_link" href="http://bbs.hainan.net/list-hn-1.shtml">海南</a></li>
</ul>
<ul class="nav_child"><li class="child_hd"></li>
<li><a itemid="45" class="child_link" href="/list-45-1.shtml">重慶</a></li>
<li><a itemid="63" class="child_link" href="/list-63-1.shtml">四川</a></li>
<li><a itemid="178" class="child_link" href="/list-178-1.shtml">貴州</a></li>
<li><a itemid="62" class="child_link" href="/list-62-1.shtml">雲南</a></li>
<li><a itemid="153" class="child_link" href="/list-153-1.shtml">西藏</a></li>
<li><a itemid="183" class="child_link" href="/list-183-1.shtml">甘肅</a></li>
<li><a itemid="60" class="child_link" href="/list-60-1.shtml">陝西</a></li>
<li><a itemid="191" class="child_link" href="/list-191-1.shtml">寧夏</a></li>
<li><a itemid="203" class="child_link" href="/list-203-1.shtml">青海</a></li>
<li><a itemid="173" class="child_link" href="/list-173-1.shtml">新疆</a></li>
</ul>
"""

soup = BeautifulSoup(html,'html.parser')
list = soup.find_all('a')
conn = pymysql.connect('localhost','zoe','1235789y','tianyadb',charset='utf8')
cursor = conn.cursor()
for l in list:
    try:
        print('there')
        sql = "insert into citys(city,c_url) values(%s,%s)"
        print(sql)
        cursor.execute(sql,(str(l.string),str('http://bbs.tianya.cn'+l['href']).encode('utf8')))
        print('ok')
        conn.commit()        
        
    except pymysql.Error as e:
        print('************error:',e)
        conn.rollback()
cursor.close()
conn.close()

以上為原始碼

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

其中遇到的問題

1:中文編碼問題

分為4步:1.Python檔案設定編碼(檔案前面加上 #encoding=utf-8)

                   2.設定資料庫編碼為utf-8,(charset=utf-8)

                   3.Python連線mysql資料庫時加上引數charset=‘utf8’

                   4.設定python的預設編碼是utf8(sys.setdefaultencoding(utf-8))

                     注:Python3中取消了這種寫法,改用import importlib  importlib.reload(sys)

2.insert語句變數插入

在sql語句中將佔位符標好,然後cursor.execute()中將變數當做引數加入。(這種方式安全,使用Python字串傳參的方法後面加%,有sql注入的危險)

sql = "insert into citys(city,c_url) values(%s,%s)"
print(sql)
cursor.execute(sql,(str(l.string),str('http://bbs.tianya.cn'+l['href']).encode('utf8')))

3.錯誤異常處理

4.遊標指標cursor的位置問題

相關推薦

網頁資料儲存mysql資料庫過程問題解決

#coding:utf-8 from bs4 import BeautifulSoup import pymysql import sqlite3 import sys import importlib importlib.reload(sys) html = """ &l

linux定時備份mysql資料庫解決crontab執行時生成資料庫檔案為空的問題

一、用命令實現備份 進入mysql的bin目錄(mysql安裝目錄的下一級目錄) 1、備份資料 #mysqldump -uusername -ppassword discuz >discuz_2010-04-01.sql -uusernae:-u+mysql的使用者名

利用log4j將記錄日誌儲存Mysql資料庫方法問題

1.首先是要在資料庫中建一張表 CREATE TABLE `log` ( `log_id` int(11) NOT NULL AUTO_INCREMENT, `project_name` var

Java資料採集:Xpath解析 + WebMagic案例:採集豆瓣豆列電影資訊儲存MySql資料庫

Maven的安裝與設定環境變數 2. 設定環境變數  新建變數MAVEN_HOME,值為Maven的目錄X:\XXX\apache-maven-XXX 將%MAVEN_HOME%\bin新增到Path變數下 3. 檢測:執行CMD,輸入mvn -v後可以看到Mave

pandas 之 to_csv 儲存資料出現中文亂碼問題解決辦法

1.  使用scrapy框架爬取了一些汽車評價儲存在csv檔案中,但是直接開啟時亂碼了。2. 使用pandas讀取再使用to_csv()方法重新儲存import pandas as pd file_name = 'G:/myLearning/pythonML201804/s

操作大文字資料儲存資料庫mysql中有個lob

/*create table t2(id int primary key,content longtext);*///插入大文字資料@Testpublic void testTextWrite() throws Exception{Connection conn = Jdb

百度網址安全中心提醒您:該頁面可能存在違法信息!處理過程解決辦法

表單 次數 get shadow 刪除 屬於 活動 一次 img 2018年6月26日我們Sine安全公司接到新客戶的安全求助,網站被阿裏雲提示:違規URL屏蔽訪問處理通知,導致網站無法訪問,打開網站並提示該內容被禁止訪問。導致客戶的網站流量急劇下滑,網站的用戶都無法正常的

mysql安裝過程註意事項

無法 輸入 warn bye oot 放置 pass mage sql 1.1. 下載: 我下載的是64位系統的zip包: 下載地址:https://dev.mysql.com/downloads/mysql/ 下載zip的包: 下載後解壓:D:\軟件安裝包\mysql

mysql資料庫使用者使用者許可權管理

1、mysql資料庫的許可權 (1)mysql資料庫使用者許可權級別          1)全域性性管理許可權:作用於整個mysql例項級別      &nb

利用Python將Excel表中的資料匯入Mysql資料庫

 python操作Excel 需要匯入xlrd包,可以通過pip install xlrd 一鍵安裝。 #coding=utf-8 ''' python 將指定目錄下的excel檔案匯入到資料庫中 ''' # 引入資料庫包 import pymysql # 引入操作excel包

Shell_mysql命令以及將資料匯入Mysql資料庫

連線MYSQL資料庫 mysql -h${db_ip} -u${db_user} -p${db_pawd} -P${db_port} -D${db_name} -s -e "${sql}"   db_ip:主機地址   db_user :資料庫使用者名稱   db_pwd:密碼   db

mysql 遇到問題解決方案

用localhost 和127.0.0.1可以連線資料庫,用IP不可以連線[MySQL資料庫版本:5.7.20]: 原因: MySQL 預設是沒有開啟這個許可權的(只允許使用 host:localhost或者 host:127.0.0.1),如果想用host:192.168.1.* ,來

python 將爬取的資料儲存資料庫

python 將爬取的資料儲存在資料庫裡 import urllib.request import re import sqlite3 response = urllib.request.urlopen("https://search.51job.com/list/010000%252C

購物車中的資料儲存資料庫還是cookie中

目前我們使用購物車的儲存方式主要有:Session方式,Cookie方式,資料庫儲存,下面來分析一下三種儲存方式的優缺點。 1.Session(Memcached)方式 優點:購物車資訊儲存在服務端,可以儲存1M 資訊。 缺點:對於大型網站會佔有過多的伺服器記憶體資源,造成伺服器

MySQL資料庫索引優化

索引 什麼是索引 索引是用來提高資料庫效能的常用工具,索引就像資料的目錄一樣,通過索引可以快速找到需要的內容。 索引的原理,加快查詢 索引是建立了針對資料內容的排序結果的指標,根據指標快速定位所要的資料。 索引的設計原則 1  索引列一般為where子句中的列或連線列子句中的列。 2&

小白學python-----------------MySQL資料庫描述修改,破解密碼

一.什麼是資料庫 資料庫本質就是一個C/S的套接字軟體 常見的資料庫 關係型:(以表的形式) MySQL mariadb oracle db2 sqlserver 非關係:存取資料都是以key:value mongodb redis memcache

忘記本地MySQL資料庫密碼的解決方案。

忘記本地MySQL資料庫密碼,解決方案,分以下10個步驟: 參考連結:https://blog.csdn.net/weidong_y/article/details/80493743 資料庫版本:5.7.21 1、開啟cmd視窗,進入 MySQL的安裝目錄。 2、停止MySQL的服務。已經停止了。

利用pandas的to_sql將資料插入MySQL資料庫和所踩過的坑

前言 最近做一個Django web的專案要把爬取的一些資料存入MySQL中,資料儲存為csv格式,想到pandas中有to_sql這個方法,就採用它了 準備:連線MySQL資料庫所需的第三方包pymysql、sqlalchemy(pip安裝即可) 實現 from sql

mysql安裝過程注意事項

1、下載MySql  選擇對應的下載檔案。(我電腦是64位,所以這下載的是64位的下載檔案) 2、安裝MySql  開啟下載檔案解壓到指定檔案目錄。(我這裡解壓目錄為F:\Program Files\mysql-5.7.23-winx64)  

mysql資料庫架構效能分析

一般架構為主從資料庫伺服器搭配,例如一臺Master(主伺服器)對應著十幾臺或者上百臺Slave(從伺服器),如果沒有高可用的主從複製元件的話,當主伺服器遇到意外情況崩潰時,很難自動進行故障切換,必須由