python网页数据存入数据库_python网络爬虫抓取动态网页并将数据存入数据库MySQL...
简述
以下的代码是使用python实现的网络爬虫,抓取动态网页 http://hb.qq.com/baoliao/ 。此网页中的最新、精华下面的内容是由JavaScript动态生成的。审查网页元素与网页源码是不同。
以上是网页源码
以上是审查网页元素
所以此处不能简单的使用正则表达式来获取内容。
以下是完整的获取内容并存储到数据库的思路及源码。
实现思路:
抓取实际访问的动态页面的url – 使用正则表达式获取需要的内容 – 解析内容 – 存储内容
以上部分过程文字解释:
抓取实际访问的动态页面的url:
在火狐浏览器中,右键打开插件 使用**firebug审查元素** *(没有这项的,要安装firebug插件),找到并打开**网络(NET)**标签页。重新加载网页,获得网页的响应信息,包括连接地址。每个连接地址都可以在浏览器中打开。本网站的动态网页访问地址是:
http://baoliao.hb.qq.com/api/report/NewIndexReportsList/cityid/18/num/20/pageno/1?callback=jQuery183019859437816181613_1440723895018&_=1440723895472
正则表达式:
正则表达式的使用有两种思路,可以参考个人有关其简述:python实现简单爬虫以及正则表达式简述
更多的细节介绍可以参考网上资料,搜索关键词: 正则表达式 python
json:
参考网上有关json的介绍,搜索关键词: json python
存储到数据库:
参考网上的使用介绍,搜索关键词: 1,mysql 2,mysql python
源码及注释
注意:使用python的版本是 2.7
#!/usr/bin/python#指明编码#-*- coding: UTF-8 -*-
#导入python库
importurllibimporturllib2importreimportMySQLdbimportjson#定义爬虫类
classcrawl1:def getHtml(self,url=None):#代理
user_agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"header={"User-Agent":user_agent}
request=urllib2.Request(url,headers=header)
response=urllib2.urlopen(request)
html=response.read()returnhtmldefgetContent(self,html,reg):
content=re.findall(html, reg, re.S)returncontent#连接数据库 mysql
defconnectDB(self):
host="192.168.85.21"dbName="test1"user="root"password="123456"
#此处添加charset='utf8'是为了在数据库中显示中文,此编码必须与数据库的编码一致
db=MySQLdb.connect(host,user,password,dbName,charset='utf8')returndb
cursorDB=db.cursor()returncursorDB#创建表,SQL语言。CREATE TABLE IF NOT EXISTS 表示:表createTableName不存在时就创建
defcreatTable(self,createTableName):
createTableSql="CREATE TABLE IF NOT EXISTS"+ createTableName+"(time VARCHAR(40),title VARCHAR(100),text VARCHAR(40),clicks VARCHAR(10))"DB_create=self.connectDB()
cursor_create=DB_create.cursor()
cursor_create.execute(createTableSql)
DB_create.close()print 'creat table'+createTableName+'successfully'
returncreateTableName#数据插入表中
definserttable(self,insertTable,insertTime,insertTitle,insertText,insertClicks):
insertContentSql="INSERT INTO"+insertTable+"(time,title,text,clicks)VALUES(%s,%s,%s,%s)"
#insertContentSql="INSERT INTO "+insertTable+"(time,title,text,clicks)VALUES("+insertTime+" , "+insertTitle+" , "+insertText+" , "+insertClicks+")"
DB_insert=self.connectDB()
cursor_insert=DB_insert.cursor()
cursor_insert.execute(insertContentSql,(insertTime,insertTitle,insertText,insertClicks))
DB_insert.commit()
DB_insert.close()print 'inert contents to'+insertTable+'successfully'url="http://baoliao.hb.qq.com/api/report/NewIndexReportsList/cityid/18/num/20/pageno/1?callback=jQuery183019859437816181613_1440723895018&_=1440723895472"
#正则表达式,获取js,时间,标题,文本内容,点击量(浏览次数)
reg_jason=r'.*?jQuery.*?\((.*)\)'reg_time=r'.*?"create_time":"(.*?)"'reg_title=r'.*?"title":"(.*?)".*?'reg_text=r'.*?"content":"(.*?)".*?'reg_clicks=r'.*?"counter_clicks":"(.*?)"'
#实例化crawl()对象
crawl=crawl1()
html=crawl.getHtml(url)
html_jason=re.findall(reg_jason, html, re.S)
html_need=json.loads(html_jason[0])printlen(html_need)print len(html_need['data']['list'])
table=crawl.creatTable('yh1')for i in range(len(html_need['data']['list'])):
creatTime=html_need['data']['list'][i]['create_time']
title=html_need['data']['list'][i]['title']
content=html_need['data']['list'][i]['content']
clicks=html_need['data']['list'][i]['counter_clicks']
crawl.inserttable(table,creatTime,title,content,clicks)
python网页数据存入数据库_python网络爬虫抓取动态网页并将数据存入数据库MySQL...相关推荐
- python网站数据写入mysql_python网络爬虫抓取动态网页并将数据存入数据库MySQL
简述 以下的代码是使用python实现的网络爬虫,抓取动态网页 http://hb.qq.com/baoliao/ .此网页中的最新.精华下面的内容是由JavaScript动态生成的.审查网页元素与网 ...
- python爬虫抓取动态网页数据_python网络爬虫抓取ajax动态网页数据:以抓取KFC门店地址为例...
一,尝试用BeautifulSoup抓取 先打开KFC网站门店列表页面:http://www.kfc.com.cn/kfccda/storelist/index.aspx 可以看到门店列表如下图: 打 ...
- python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...
python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07
- 用python爬虫下载视频_使用Python编写简单网络爬虫抓取视频下载资源
我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...
- python爬虫微信朋友圈怎么发文字_如何利用Python网络爬虫抓取微信朋友圈的动态(上)...
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- python抓取微信朋友圈动态_2018最全如何利用Python网络爬虫抓取微信朋友圈的动态...
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- python爬虫能爬取微信密码吗_如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例...
今天我们继续focus on微信,不过这次给大家带来的是利用Python网络爬虫抓取微信好友总数量和微信好友男女性别的分布情况.代码实现蛮简单的,具体的教程如下. 相信大家都知道,直接通过网页抓取微信 ...
- 2018最全如何利用Python网络爬虫抓取微信朋友圈的动态
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- 如何利用Python网络爬虫抓取微信朋友圈的动态(上)
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
最新文章
- Neural-RGBD: 从单目视频序列中估计深度及其不确定度
- chapter4 module and port
- (30个原生js挑战)原生js实现钟表
- csp-s模拟测试44「D·E·F」
- final方法覆盖与重载问题以及不同访问权限问题
- python命名空间特性_PHP关键特性之命名空间实例
- 《RabbitMQ 实战指南》第一章 RabbitMQ 简介
- 如果你需要万圣节的图片素材来点缀你的节日活动,看这里就对了
- 微信小程序 data中数据值的更改与储存
- 蓝牙学习笔记(五)——AC692x_BLE工具make_gatt_services
- 前端案例:飞机大战( js+dom 操作,代码完整,附图片素材)
- 路由器与交换机的区别
- 团队-科学计算器-项目总结
- AddressSanitizer: heap-buffer-overflow on address 0x602000000534 at pc 0x00000040699d bp 0x7ffce0afd
- Microsoft Teams显示连接不上网
- Redis原生SET、SETNX、SETEX方法以及RedisTemplate的方法 + 分布式锁的实现
- 利用电子邮件“钓鱼”的常见手段
- 笔记 ~ 第三章 - 3.2 数据查询
- echart显示多组数据
- 《整洁代码之道》学习书摘(二)第一章——整洁代码