Python爬虫 爬取数据存入MongoDB

from bs4 import BeautifulSoup
import requests
import time
import pymongo

client = pymongo.MongoClient('Localhost', 27017)
ceshi = client['ceshi']
url_list = ceshi['url_list3']
item_info = ceshi['item_info3']
def get_links_form(channel, pages, who_sells=0):
    
    list_view = '{}{}/pn{}/'.format(channel, str(who_sells), str(pages))
    wb_data = requests.get(list_view)
    time.sleep(1)
    soup = BeautifulSoup(wb_data.text, 'lxml')
    if soup.find('td' 't'):
        
        for link in soup.select('td.t a.t'):
            item_link = link.get('href').split('?')[0]
            url_list.insert_one({'url': item_link})
            print(item_link)
    else:
        pass
#get_links_form('http://bj.58.com/shuma/',2)  
def get_item_info(url):
    wb_data = requests.get(url)
    soup = BeautifulSoup(wb_data.text, 'lxml')
    no_longer_exit = '404' in soup.find('script', type = "text/javascript").get('src').split('/')
    if no_longer_exit:
        pass
    else:
        
        title = soup.title.text
        price = soup.select('span.price.c_f50')[0].text
        date = soup.select('.time')[0].text
        area = list(soup.select('.c_25d a')[0].stripped_strings) if soup.find_all('span', 'c_25d') else None
        item_info.insert_one({'title':title, 'price':price, 'date':date , 'area':area})
        print({'title':title, 'price':price, 'date':date , 'area':area})
        
get_item_info("http://bj.58.com/diannao/31994026546616x.shtml")

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以使用pymongo库来连接MongoDB数据库,并使用requests和BeautifulSoup库来爬取数据。以下是一个简单的示例代码,演示如何将爬取到的数据存储到MongoDB数据库中: ```python import requests from bs4 import BeautifulSoup import pymongo # 连接MongoDB数据库 client = pymongo.MongoClient('mongodb://localhost:27017/') db = client['mydatabase'] collection = db['mycollection'] # 爬取数据 url = 'https://www.example.com' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') data = {'title': soup.title.string, 'content': soup.get_text()} # 将数据存储到MongoDB数据库中 collection.insert_one(data) ``` 在上面的代码中,我们首先使用pymongo库连接到MongoDB数据库。然后,我们使用requests和BeautifulSoup库来爬取数据,并将数据存储到一个字典中。最后,我们使用insert_one()方法将数据插入到MongoDB数据库中。 当然,这只是一个简单的示例代码,实际上,爬取数据和存储数据的过程可能会更加复杂。但是,使用PythonMongoDB,您可以轻松地实现数据爬取和存储。 ### 回答2: Python是一种高级编程语言,具有强大的网络爬虫能力。要将爬取数据存入MongoDB数据库,我们可以按照以下步骤操作: 1. 导入所需库: 首先要导入`pymongo`库,这是一个Python操作MongoDB数据库的工具包。 2. 连接MongoDB数据库: 在代码中使用`pymongo.MongoClient()`方法连接MongoDB数据库。你需要指定要连接的主机和端口,例如`client = pymongo.MongoClient("localhost", 27017)`。 3. 创建数据库和集合: 如果你的MongoDB中还没有相应的数据库和集合,可以使用`client['数据库名称']`创建数据库,并使用`数据库名称['集合名称']`语法创建集合。 4. 爬取数据: 使用Python中的网络爬虫库(例如`requests`或`beautifulsoup`)编写爬取数据的代码。你可以使用URL或其他方法获取数据。 5. 数据处理: 爬取到的数据可能需要进行一些处理,比如提取特定字段、转换数据类型等。 6. 存入MongoDB: 使用`集合名称.insert_one()`或`集合名称.insert_many()`方法将处理后的数据存入MongoDB数据库。你可以将数据作为字典或列表传递给这些方法。 7. 关闭连接: 在完成数据存入操作后,使用`client.close()`方法关闭与MongoDB数据库的连接。 通过按照以上步骤操作,你可以使用Python爬取数据,并将处理后的数据存入MongoDB数据库。这样做可以方便地管理和查询数据,同时还能保持数据的完整性。 ### 回答3: Python是一种广泛应用于数据处理和网络爬虫的编程语言,而MongoDB是一种面向文档的NoSQL数据库。使用Python进行数据爬取并将数据存入MongoDB是一项常见的任务。下面是一个简单的使用Python爬取数据存入MongoDB的过程。 首先,我们需要安装Python的相关库,包括`pymongo`和`beautifulsoup4`。`pymongo`是PythonMongoDB交互的库,`beautifulsoup4`是用于解析HTML网页的库。 接下来,我们需要创建一个MongoDB的连接。我们可以使用如下代码: ```python from pymongo import MongoClient client = MongoClient() db = client['database_name'] collection = db['collection_name'] ``` 在这里,我们创建了一个名为`database_name`的数据库,并在其中创建了一个名为`collection_name`的集合。 然后,我们可以使用`beautifulsoup4`库来解析HTML网页,获取我们需要的数据。以爬取一个网页的标题为例,我们可以使用如下代码: ```python import requests from bs4 import BeautifulSoup url = 'https://www.example.com' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') title = soup.title.text ``` 在这里,我们使用`requests`库获取网页的内容,并使用`BeautifulSoup`进行解析。然后,我们可以使用`soup.title.text`获取网页的标题。 最后,我们可以将获取到的数据存入MongoDB中。我们可以使用如下代码: ```python data = { 'title': title, } collection.insert_one(data) ``` 在这里,我们创建了一个`data`字典,包含了我们想要存入数据。然后,我们使用`insert_one`方法将数据插入到MongoDB中。 总结一下,我们可以使用Python的`pymongo`和`beautifulsoup4`库,爬取数据并将其存入MongoDB。首先,我们创建一个MongoDB的连接。然后,我们使用`requests`和`beautifulsoup4`库获取网页的内容和解析HTML。最后,我们使用`insert_one`方法将数据存入MongoDB

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值