python中urllib2与BeautifulSoup爬取数据保存MongoDB_PHP教程

php中文网
发布: 2016-07-13 10:18:00
原创
1509人浏览过

python中urllib2与beautifulsoup爬取数据保存mongodb

   beautiful soup是一个用来解析html和xml的python库,它可以按照你喜欢的方式去解析文件,查找并修改解析树。它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。

  如图使用urllib2与BS4模块爬取html页面数据,分别为标题、内容、股票名称、股票ID、发布时间、围观人数。

存了个图
存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17
查看详情 存了个图
python中urllib2与BeautifulSoup爬取数据保存MongoDB 帮客之家

  Example:

 代码如下  

##-coding:utf-8-##
import time
from bs4 import BeautifulSoup
import urllib2
import pymongo
import re
import datetime

def update():
    datas = {}
    connection = pymongo.Connection('192.168.1.2', 27017)
 #连接mongodb
    db = connection.test_hq
 #创建或连接test_hq库
    for i in soup.find_all("div", class_="item"):
        datas['_id'] = str(i.h2.a['href']).split('/')[-1].split('.')[0]
 #获取html页面名称为id号
        datas['title'] = i.h2.get_text()
 #获取标题
        url2 = i.h2.a['href']
 #获取标题内容url地址
        html2 = urllib2.urlopen(url2)
        html_doc2 = html2.read()
        soup2 = BeautifulSoup(html_doc2)
        datas['content'] = soup2.find(attrs={"name":"description"})['content']
 #获取文章内容
        stock_name = []
        stock_id = []
        for name in re.findall(u"[u4e00-u9fa5]+",i.find(class_="stocks").get_text()):
            stock_name.append(name)
 #获取影响股票名称,已数组方式保存对应股票id号,mongo支持数组插入
        datas['stock_name'] = stock_name
        for id in re.findall("d+",i.find(class_="stocks").get_text()):
            stock_id.append(id)
 #获取影响股票id
        datas['stock_id'] = stock_id       
        datas['update_time'] = datetime.datetime.strptime(re.search("w+.*w+", i.find(class_="fl date").span.get_text()).group(), '%Y-%m-%d %H:%M') - datetime.timedelta(hours=8)
 #获取发布时间,转换为mongo时间格式
        datas['onlooker'] = int(re.search("d+",i.find(class_="icons ic-wg").get_text()).group())
 #获取围观数
        db.test.save(datas)
 #插入数据库

def get_data():
    
    title = str(soup.h2.a['href']).split('/')[-1].split('.')[0]
    #获取html页面名称做更新判断
    with open('update.txt', 'r') as f:
        time = f.readline()
    if  title == time:
        print 'currently no update', title
    else:
        with open('update.txt', 'w') as f:
            f.write(title)
        update()
      
while True:
    if __name__ == '__main__':
        url = 'http://www.ipython.me/qingbao/'
        html = urllib2.urlopen(url)
        html_doc = html.read()
        soup = BeautifulSoup(html_doc)
        get_data()
        time.sleep(30)
 #每30秒刷新一次

python中urllib2与BeautifulSoup爬取数据保存MongoDB

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/886552.htmlTechArticlepython中urllib2与BeautifulSoup爬取数据保存MongoDB Beautiful Soup是一个用来解析HTML和XML的python库,它可以按照你喜欢的方式去解析文件,查找并修改...
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号