使用pythonselenium爬取内容并存储mysql数据库的实例图解

这篇文章主要介绍了python selenium爬取内容并存储至mysql数据库的实现代码,需要的朋友可以参考下

前面我通过一篇文章讲述了如何爬取csdn的博客摘要等信息。通常,在使用selenium爬虫爬取数据后,需要存储在txt文本中,但是这是很难进行数据处理和数据分析的。这篇文章主要讲述通过selenium爬取我的个人博客信息,然后存储在数据库mysql中,以便对数据进行分析,比如分析哪个时间段发表的博客多、结合wordcloud分析文章的主题、文章阅读量排名等。这是一篇基础性的文章,希望对您有所帮助,如果文章中出现错误或不足之处,还请海涵。下一篇文章会简单讲解数据分析的过程。

一. 爬取的结果爬取的地址为:http://blog.csdn.net/eastmount

使用python selenium爬取内容并存储mysql数据库的实例图解

爬取并存储至mysql数据库的结果如下所示:

使用python selenium爬取内容并存储mysql数据库的实例图解

运行过程如下图所示:

使用python selenium爬取内容并存储mysql数据库的实例图解

二. 完整代码分析

完整代码如下所示:

# coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import keys
import selenium.webdriver.support.ui as ui
import re
import time
import os
import codecs
import mysqldb
#打开firefox浏览器 设定等待加载时间
driver = webdriver.firefox()
wait = ui.webdriverwait(driver,10)
#获取每个博主的博客页面低端总页码
def getpage():
print ‘getpage’
number = 0
texts = driver.find_element_by_xpath(“//p[@]”).text
print ‘页码’, texts
m = re.findall(r'(\w*[0-9]+)\w*’,texts) #正则表达式寻找数字
print ‘页数:’ + str(m[1])
return int(m[1])
#主函数
def main():
#获取txt文件总行数
count = len(open(“blog_url.txt”,’ru’).readlines())
print count
n = 0
urlfile = open(“blog_url.txt”,’r’)
#循环获取每个博主的文章摘信息
while n < count: #这里爬取2个人博客信息,正常情况count个博主信息 url = urlfile.readline() url = url.strip("\n") print url driver.get(url) #获取总页码 allpage = getpage() print u'页码总数为:', allpage time.sleep(2) #数据库操作结合 try: conn=mysqldb.connect(host='localhost',user='root', passwd='123456',port=3306, db='test01') cur=conn.cursor() #数据库游标 #报错:unicodeencodeerror: 'latin-1' codec can't encode character conn.set_character_set('utf8') cur.execute('set names utf8;') cur.execute('set character set utf8;') cur.execute('set character_set_connection=utf8;') #具体内容处理 m = 1 #第1页 while m

Posted in 未分类

发表评论