当前位置:博客首页>>Python >> 阅读正文

python抓取糗百信息并入库mysql

作者: 郑晓 分类: Python 发布于: 2013-12-24 17:19 浏览(7,365) 评论(7)


这里抓取的页面是糗百的最近8小时糗事页面。感觉它的列表规则比较简单一些。学习pytho的urllib库基本操作与mysql的基础使用。
连接mysql使用的是mysql自家的connector。http://dev.mysql.com/doc/connector-python/en/index.html
环境win2003+python3.3代码如下。

#导入urllib、mysql和正则类库
import urllib.request
import mysql.connector
import re
#设置要抓取的页面
url="http://www.qiushibaike.com/8hr/page/1"
#模拟访问页面,抓取页面内容到page变量中
response=urllib.request.urlopen(url)
page=response.read()
#匹配糗事正文及图片的正则
p = re.compile(r'<div class="content" title="([\d\-\s:]+)">([^<]*(?=<br\/>[^<]+)*)<\/div>(?=\s*<div class="thumb">\s*<a[^>]+>\s*(<img[^>]+\/>)\s*<\/a>\s*<\/div>)?')
#对抓取的utf8的内容转为unicode 并执行匹配 将匹配结果放到resultlist列表。
resultlist = p.findall(page.decode('utf-8'))
print(resultlist)
#以下是数据库操作部分
#数据库连接配置字典
conn = {'host':'localhost', 'user':'root', 'password':'flake', 'database':'test'}
#建立数据库连接
conn = mysql.connector.connect(**conn)
#获得游标
cursor = conn.cursor()
#插入数据库的sql 将内容中的换行符直接替换掉
insertSql = "insert into qiubai (dates, text, img) values (%s, replace(replace(%s,'\n',''),'\r',''), %s)"
#执行批量插入操作
cursor.executemany(insertSql, resultlist)
#关闭游标及数据库连接
cursor.close()
conn.close()
input()

如果内容中有图片的话也会抓取到图片标签。
python-urllib-mysql

↓↓微信扫码请我吃份正宗的烤面筋,可带劲啦↓↓
       

本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。

本文永久链接: https://www.zh30.com/information-python-crawling-embarrassing-one-hundred-and-storage-mysql.html

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

用户评论头像 基坑支护发表于 2014年02月21日 08:26[回复]

没看懂这个是什么意思?

    用户评论头像 郑晓发表于 2014年02月21日 08:55[回复]

    获取url的内容,然后正则找出当前页所有的糗事信息,再入库。 用正则写的麻烦了,后来发现用BeautifulSoup库更方面。

用户评论头像 温州夜网发表于 2014年01月28日 19:41[回复]

我的数据库老是出问题,不知道怎么回事

用户评论头像 胡超博客发表于 2014年01月09日 14:57[回复]

学习一下,关于python的博客好少啊

用户评论头像 NIkoes发表于 2014年01月05日 16:59[回复]

🙁 😛 很好很好

用户评论头像 意遇天空发表于 2014年01月03日 15:21[回复]

又是一个搞运维的啊。。。

用户评论头像 手表展示架发表于 2013年12月27日 21:09[回复]

python没用过,看来真要学习一下