python使用mysql

來源:互聯網
上載者:User

標籤:use   ODB   rom   code   show   本地   bsp   nec   tin   

連結mysql做了個小練習:爬取 http://wufazhuce.com 上的問題,描述和答案,存到本地的資料庫裡。

資料表結構:

CREATE TABLE `questions` (`title` varchar(2000) DEFAULT NULL,`description` varchar(200) DEFAULT NULL,`answers` varchar(2000) DEFAULT NULL,`url` varchar(2000) DEFAULT NULL,`daynum` varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8
View Code

代碼:

# author:import pymysql.cursorsimport requestsfrom bs4 import BeautifulSoupcon = pymysql.connect(host=‘192.168.86.130‘, user=‘root‘, password=‘letmein‘, db=‘0603simon‘, port=3306,                      charset=‘utf8‘)# with con.cursor() as cur:#     sql = ‘show tables‘#     result = cur.execute(sql)#     print(result)# exit()cur = con.cursor()for p_num in range(1, 1872):    # for p_num in range(8,9):    url = ‘http://wufazhuce.com/question/%s‘ % p_num    response = requests.get(url=url)    response.encoding = response.apparent_encoding    soup = BeautifulSoup(response.text, features="html.parser")    # print(soup)    tar = soup.find(‘div‘, class_=‘one-cuestion‘)    # print(tar)    if not tar:        print(‘not tar‘)        sql = ‘‘‘insert into questions (title,description,answers,url,daynum) values(‘404‘,‘404‘,‘404‘,‘%s‘,‘%s‘)‘‘‘ % (            url, p_num)        print(sql)        result = cur.execute(sql)        con.commit()        print(‘執行結果:‘ + str(result))        continue    title = tar.find(‘h4‘).text.strip()    # print (title)    # exit()    desc = soup.find(‘div‘, class_=‘cuestion-contenido‘).text.strip()    # print(desc)    ans = soup.find_all(‘div‘, class_=‘cuestion-contenido‘)    for index, answer in enumerate(ans):        if index == 0:            continue            # print(answer.text.strip())    answer = answer.text.strip()    # print(url)    if answer.__len__() > 1800:        answer = answer[0:1800]    sql = ‘‘‘insert into questions (title,description,answers,url,daynum) values(%s,%s,%s,‘%s‘,‘%s‘)‘‘‘ % (        con.escape(title), con.escape(desc), con.escape(answer), url, p_num)    print(sql)    result = cur.execute(sql)    con.commit()    print(‘執行結果:‘ + str(result))cur.close()con.close()
View Code

 

python使用mysql

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.