當前位置:博客首頁>>Python >> 閱讀正文

python抓取糗百信息并入庫mysql

作者: 鄭曉 分類: Python 發(fā)布于: 2013-12-24 17:19 瀏覽:10,731 評論(7)


這里抓取的頁面是糗百的最近8小時糗事頁面。感覺它的列表規(guī)則比較簡單一些。學(xué)習pytho的urllib庫基本操作與mysql的基礎(chǔ)使用。
連接mysql使用的是mysql自家的connector。http://dev.mysql.com/doc/connector-python/en/index.html
環(huán)境win2003+python3.3代碼如下。

#導(dǎo)入urllib、mysql和正則類庫
import urllib.request
import mysql.connector
import re
#設(shè)置要抓取的頁面
url="http://www.qiushibaike.com/8hr/page/1"
#模擬訪問頁面,抓取頁面內(nèi)容到page變量中
response=urllib.request.urlopen(url)
page=response.read()
#匹配糗事正文及圖片的正則
p = re.compile(r'

([^<]*(?=[^<]+)*)<\/div>(?=\s*

\s*]+>\s*(]+\/>)\s*<\/a>\s*<\/div>)?')
#對抓取的utf8的內(nèi)容轉(zhuǎn)為unicode 并執(zhí)行匹配 將匹配結(jié)果放到resultlist列表。
resultlist = p.findall(page.decode('utf-8'))
print(resultlist)
#以下是數(shù)據(jù)庫操作部分
#數(shù)據(jù)庫連接配置字典
conn = {'host':'localhost', 'user':'root', 'password':'flake', 'database':'test'}
#建立數(shù)據(jù)庫連接
conn = mysql.connector.connect(**conn)
#獲得游標
cursor = conn.cursor()
#插入數(shù)據(jù)庫的sql 將內(nèi)容中的換行符直接替換掉
insertSql = "insert into qiubai (dates, text, img) values (%s, replace(replace(%s,'\n',''),'\r',''), %s)"
#執(zhí)行批量插入操作
cursor.executemany(insertSql, resultlist)
#關(guān)閉游標及數(shù)據(jù)庫連接
cursor.close()
conn.close()
input()

如果內(nèi)容中有圖片的話也會抓取到圖片標簽。
python-urllib-mysql

? ? ? ?

本文采用知識共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進行許可,轉(zhuǎn)載時請注明出處及相應(yīng)鏈接。

本文永久鏈接: http://www.yjfs.org.cn/information-python-crawling-embarrassing-one-hundred-and-storage-mysql.html

python抓取糗百信息并入庫mysql:目前有7 條留言

用戶評論頭像 基坑支護發(fā)表于 2014年02月21日 08:26[回復(fù)]

沒看懂這個是什么意思?

    用戶評論頭像 鄭曉發(fā)表于 2014年02月21日 08:55[回復(fù)]

    獲取url的內(nèi)容,然后正則找出當前頁所有的糗事信息,再入庫。 用正則寫的麻煩了,后來發(fā)現(xiàn)用BeautifulSoup庫更方面。

用戶評論頭像 溫州夜網(wǎng)發(fā)表于 2014年01月28日 19:41[回復(fù)]

我的數(shù)據(jù)庫老是出問題,不知道怎么回事

用戶評論頭像 胡超博客發(fā)表于 2014年01月09日 14:57[回復(fù)]

學(xué)習一下,關(guān)于python的博客好少啊

用戶評論頭像 NIkoes發(fā)表于 2014年01月05日 16:59[回復(fù)]

?? ?? 很好很好

用戶評論頭像 意遇天空發(fā)表于 2014年01月03日 15:21[回復(fù)]

又是一個搞運維的啊。。。

用戶評論頭像 手表展示架發(fā)表于 2013年12月27日 21:09[回復(fù)]

python沒用過,看來真要學(xué)習一下

發(fā)表評論

change vcode