找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 5330|回复: 1

[已回复] 如何检测爬取的数据在MongoDB中是否存在?

2

主题

2

帖子

2

积分

贫民

积分
2
zen125 发表于 2016-11-8 10:40:14 | 显示全部楼层 |阅读模式
这是我爬取国务院领导动态网页链接、标题、日期并录入MongoDB的源码:想问一下如何加入判断爬取的数据是否已录入数据库的语句,使得该程序可以重复运行爬取最新的数据,并且不会将之前爬取的数据录入MongoDB。

from bs4 import BeautifulSoup
import requests
import pymongo
import time
urls = ['http://sousuo.gov.cn/column/31250/{}.htm'.format(str(i)) for i in range (0,10,1)]
client = pymongo.MongoClient('localhost',27017)
guowuyuan = client['Guowuyuan']
news_info = guowuyuan['news_info']
news_info.ensure_index('title', unique=True)

def get_news (url,data=None):
    wb_data = requests.get(url)
    soup = BeautifulSoup(wb_data.text, 'lxml')
    titles = soup.select('div.content > div > div.news_box > div.list.list_1.list_2 > ul > li > h4 > a')
    dates = soup.select('div.content > div > div.news_box > div.list.list_1.list_2 > ul > li > h4 > span')
    links = soup.select('div.content > div > div.news_box > div.list.list_1.list_2 > ul > li > h4 > a')
    time.sleep(2)
    for title, date, link in zip(titles, dates, links):
        data = {
            'title': title.get_text(),
            'date': date.get_text(),
            'link': link.get("href"),
            "location":'National'
}
        return data
for single_url in urls:
    data = get_news(single_url)

回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-11-8 19:44:51 | 显示全部楼层
入库之前(或者抓取内容之前)首先要检查当前url是否已经存在, 存在则跳过, 不存在入口
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表