热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python爬虫使用MongoDB提示Noconnectionadapterswerefoundfor如何解决?

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#####coding=utf-8

import urllib

import urllib.request

import pymysql

import time

import requests

import datetime

import pandas as pd

from bs4 import BeautifulSoup

import pymongo

from pymongo import MongoClient

import gridfs



#####获取mongoClient对象

client = pymongo.MongoClient("localhost", 27017)

#####获取使用的database对象

db = client.news

#####开始爬取数据

def start_crawler():

    page_num = 1

    while page_num<=1:

        url = "http://www.sxcoal.com/news/seniorsearch?GeneralNewsSearch%5Bcategory_id%5D%5B0%5D=1&GeneralNewsSearch%5Bnews_industry_ids%5D=&GeneralNewsSearch%5Bnews_tag_ids%5D=&GeneralNewsSearch%5Bport_ids%5D=&GeneralNewsSearch%5Bprov_area_id%5D=&page={}&per-page=10".format(page_num)

        print (url)

        page_num += 1

        user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'

        headers = { 'User-Agent' : user_agent }

        req = urllib.request.Request(url,headers=headers)

        respOnse=requests.get(url,headers=headers)

        cOntent=response.text

        one_page = get_page_news(content)

        time.sleep(1)

        if one_page:

            to_mysql(one_page)

            time.sleep(1)

        else:

            break

    print ('新闻抓取完毕')          

#####爬取新闻标题、日期、地址到数据库

def to_mysql(one_page):

    print (one_page)

def get_page_news(content):

    soup = BeautifulSoup(content,'lxml')

    one_page_list = []

    for i in soup.find_all("div",class_="artnr"):  

        title = i.select('h4')[0].text

        url = i.a['href']

        date = i.p.find('span',class_='spandate').string.split(" ")[1]        

        one_page={'title':title,'url':url,'date':date,'type':'news','label':'www.sxcoal.com'}

        db.newstitle.insert_one(one_page)

        one_page_list.append((title,url,date))

    return one_page_list  

#####抓取具体内容

def get_new_body():

    link_list = get_news_linksfrom_database()

    for url in link_list:

        news_body = get_news_text(url)

        print('_id')

        #写入数据库

        one_page={'newsbody':get_news_text(url)}

        db.newstitle.insert_one(one_page)  

    print("新闻主体完毕!")

def get_news_linksfrom_database():  

    result = db.newstitle.find({'label':'www.sxcoal.com'},{'_id':1,'url':1})    

    return result if result else []

def get_news_text(url):

    html = requests.get(url)

    html.encoding = html.apparent_encoding

    soup = BeautifulSoup(html.text,'html.parser')

    try:

        return str(soup.find('div',{'id':'Zoom'}))

    except:

        return None

if __name__ == '__main__':  

    '''爬取新闻简要'''

#####   start_crawler() #开始爬虫

    '''爬取具体新闻'''

    get_new_body()

start_crawler()执行没有问题
get_new_body()执行报错

1
requests.exceptions.InvalidSchema: No connection adapters were found for '{'url': 'http://www.sxcoal.com/news/4564136/info', '_id': ObjectId('5a0ab7b7d1e44d23281339e6')}'

求大神解答


推荐阅读
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 本指南介绍了 `requests` 库的基本使用方法,详细解释了其七个主要函数。其中,`requests.request()` 是构建请求的基础方法,支持其他高级功能的实现。此外,我们还重点介绍了如何使用 `requests.get()` 方法来获取 HTML 网页内容,这是进行网页数据抓取和解析的重要步骤。通过这些基础方法,读者可以轻松上手并掌握网页数据抓取的核心技巧。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 本文基于Java官方文档进行了适当修改,旨在介绍如何实现一个能够同时处理多个客户端请求的服务端程序。在前文中,我们探讨了单客户端访问的服务端实现,而本篇将深入讲解多客户端环境下的服务端设计与实现。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 本文提供了处理WordPress网站中出现过多重定向问题的方法,包括检查DNS配置、安装SSL证书以及解决数据库连接错误等步骤。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 如何在Django框架中实现对象关系映射(ORM)
    本文介绍了Django框架中对象关系映射(ORM)的实现方式,通过ORM,开发者可以通过定义模型类来间接操作数据库表,从而简化数据库操作流程,提高开发效率。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
author-avatar
AD518最丶设计
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有