Python简单抓取CSDN博文列表并写入SQL Server数据库
来源:互联网 发布:oracle数据库架构 编辑:程序博客网 时间:2024/06/03 21:08
#/usr/bin/env python# -*- coding:utf-8 -*-import re #导入正则模块import requests #导入http客户端库import lxml.html #基于libxml2这一XML解析库的Python封装,该模块使用C语言编写,解析速度比beautiful soup更快import pymssql #导入Python的SQL Server模块import sysreload(sys)sys.setdefaultencoding('utf-8')class SQLServer: def __init__(self,host,user,pwd,db): #初始化构造方法 self.host = host self.user = user self.pwd = pwd self.db = db def __GetConnect(self): #获取SQL Server数据库连接 if not self.db: raise(NameError,"没有设置数据库连接信息") self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db) cur = self.conn.cursor() if not cur: raise(NameError,"数据库连接失败") else: return cur def ExecQuery(self,sql): cur = self.__GetConnect() cur.execute(sql) resList = cur.fetchall() #以tuple列表的形式返回结果集中的全部数据 self.conn.close() #关闭查询执行连接 return resList def ExecNonQuery(self,sql): cur = self.__GetConnect() cur.execute(sql) self.conn.commit() self.conn.close()def spider_blog(url): html = requests.get(url).content.decode('utf-8') #以utf-8编码格式打开url获取到的html tree = lxml.html.fromstring(html) list_ordinal = [] list_index = [] list_value = [] i = 0 while i < len(tree.cssselect('.link_title')): #css选择器抽取.link_title元素并替换掉回车换行及空格 list_index.append(tree.cssselect('.link_title')[i].text_content().replace('\r\n','').replace(' ','')) list_ordinal.append(i+1) #追加元素到列表 i +=1 etl_value = re.findall(r'<span class="link_title"><a href="(.*?)">', html, re.S) #正则解析提取URL cut_url = url.replace('/'+url.split('/')[-1],'') #切片拆分拼接完整url for value in etl_value: list_value.append((cut_url+value).replace('\r\n','').replace(' ','')) return zip(list_ordinal,list_index,list_value) #合并三个列表元素def main(): mscon = SQLServer(host=".\\binguo",user="binguo",pwd="none123",db="BlogDB") #目标SQLServer数据库配置信息 results = spider_blog('http://blog.csdn.net/binguo168?viewmode=contents') #测试抓取的博客URL for ordinal,key,value in results: print str(ordinal) +'\t' + key + '\t' +value sql = "INSERT INTO dbo.Blog_Message(Title,BlogURL) VALUES('" + key + "','" + value + "')" mscon.ExecNonQuery(sql)if __name__ == '__main__': main()
Python简单抓取CSDN博文列表并写入SQL Server数据库
USE BlogDBGO--Bolg博文接收测试用表CREATE TABLE dbo.Blog_Message(Ordinal INT IDENTITY(1,1),Title VARCHAR(500),BlogURL VARCHAR(1000))
SQL Server数据库执行结果:
Python简单抓取CSDN博文列表并写入SQL Server数据库
阅读全文
1 0
- Python简单抓取CSDN博文列表并写入SQL Server数据库
- Python实现抓取CSDN热门文章列表
- sql server数据库 写入图片
- 使用python抓取csdn博客访问量并保存在sqlite3数据库中
- python多线程抓取网页内容并写入MYSQL
- log4net配置写入SQL Server数据库(sqlserver-sqlclient) 并传入自定义业务对象
- log4net配置写入SQL Server数据库(sqlserver-sqlclient) 并传入自定义业务对象
- log4net配置写入SQL Server数据库(sqlserver-sqlclient) 并传入自定义业务对象
- SQL Server数据库安全列表
- PHP读取 sql 文件并写入数据库
- .Net向SQL Server数据库写入文件
- powershell读CSV写入sql server数据库
- Log4J写入到SQL SERVER数据库中
- Python实现抓取CSDN博客首页文章列表
- SQL Server数据库之数据库列表介绍
- Python爬虫-爬取xixizhan.com站点的所有电影列表并写入文件和数据库mysql
- python 获取指定文件夹下所有文件名称并写入列表
- python 二维列表映射写入csv文件, 并上传OSS
- Imageloader加载图片
- DTD学习笔记
- [剑指offer]变态跳台阶
- LeetCode-67-Add Binary(二进制相加)
- session和cookie学习
- Python简单抓取CSDN博文列表并写入SQL Server数据库
- JAVASE基础(七)
- MyEclipse 6.5 Blue Edition
- 内存溢出、内存泄露和性能优化总结
- Delphi INI 文件读写
- MCMF最小费用最大流模板
- HDU2647:Reward(拓扑排序)
- 流的分类和文件的读写
- 1003