婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > python實(shí)現(xiàn)爬蟲(chóng)數(shù)據(jù)存到 MongoDB

python實(shí)現(xiàn)爬蟲(chóng)數(shù)據(jù)存到 MongoDB

熱門標(biāo)簽:云南外呼系統(tǒng) 怎么投訴地圖標(biāo)注 呼和浩特電銷外呼系統(tǒng)加盟 電銷機(jī)器人是什么軟件 蘋果汽車租賃店地圖標(biāo)注 濟(jì)南電銷機(jī)器人加盟公司 老虎洗衣店地圖標(biāo)注 廣州長(zhǎng)安公司怎樣申請(qǐng)400電話 杭州人工電銷機(jī)器人價(jià)格

在以上兩篇文章中已經(jīng)介紹到了 Python 爬蟲(chóng)和 MongoDB , 那么下面我就將爬蟲(chóng)爬下來(lái)的數(shù)據(jù)存到 MongoDB 中去,首先來(lái)介紹一下我們將要爬取的網(wǎng)站, readfree 網(wǎng)站,這個(gè)網(wǎng)站非常的好,我們只需要每天簽到就可以免費(fèi)下載三本書(shū),良心網(wǎng)站,下面我就將該網(wǎng)站上的每日推薦書(shū)籍爬下來(lái)。

利用上面幾篇文章介紹的方法,我們很容易的就可以在網(wǎng)頁(yè)的源代碼中尋找到書(shū)籍的姓名和書(shū)籍作者的信息。

找到之后我們復(fù)制 XPath ,然后進(jìn)行提取即可。源代碼如下所示

# coding=utf-8

import re
import requests
from lxml import etree
import pymongo
import sys

reload(sys)
sys.setdefaultencoding('utf-8')

def getpages(url, total):
  nowpage = int(re.search('(\d+)', url, re.S).group(1))
  urls = []

  for i in range(nowpage, total + 1):
    link = re.sub('(\d+)', '%s' % i, url, re.S)
    urls.append(link)

  return urls

def spider(url):
  html = requests.get(url)

  selector = etree.HTML(html.text)

  book_name = selector.xpath('//*[@id="container"]/ul/li//div/div[2]/a/text()')
  book_author = selector.xpath('//*[@id="container"]/ul/li//div/div[2]/div/a/text()')

  saveinfo(book_name, book_author)

def saveinfo(book_name, book_author):
  connection = pymongo.MongoClient()
  BookDB = connection.BookDB
  BookTable = BookDB.books

  length = len(book_name)

  for i in range(0, length):
    books = {}
    books['name'] = str(book_name[i]).replace('\n','')
    books['author'] = str(book_author[i]).replace('\n','')
    BookTable.insert_one(books)

if __name__ == '__main__':
  url = 'http://readfree.me/shuffle/?page=1'
  urls = getpages(url,3)

  for each in urls:
    spider(each)

注意,在寫入數(shù)據(jù)庫(kù)的過(guò)程中不要一下子將字典中的數(shù)據(jù)寫入數(shù)據(jù)庫(kù),我一開(kāi)始就這么寫的,但是我發(fā)現(xiàn)數(shù)據(jù)庫(kù)中只有三條信息,其他信息都不見(jiàn)了。所以采用一條一條的寫入。

還有源代碼的開(kāi)頭部分,對(duì)默認(rèn)編碼的設(shè)置一定不可以省略,否則可能會(huì)報(bào)編碼錯(cuò)誤(真心感覺(jué) Python 在編碼這方面好容易出錯(cuò),尷尬)。

有的人可能發(fā)現(xiàn)了,我將提取的信息轉(zhuǎn)換成了字符串,然后使用 replace() 方法將 \n 去掉了,因?yàn)槲野l(fā)現(xiàn)在提取的書(shū)籍信息前后存在換行符,看著十分礙眼。

熱情提醒一下,在程序運(yùn)行的時(shí)候別忘記將你的 Mongo DB 運(yùn)行起來(lái),下來(lái)看看結(jié)果

好了,就這樣,如果發(fā)現(xiàn)代碼哪里存在錯(cuò)誤或者說(shuō)有可以改善的地方,希望留言給我,感謝。

您可能感興趣的文章:
  • python爬蟲(chóng)數(shù)據(jù)保存到mongoDB的實(shí)例方法

標(biāo)簽:雞西 玉林 興安盟 廈門 自貢 無(wú)錫 遼陽(yáng) 泰安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python實(shí)現(xiàn)爬蟲(chóng)數(shù)據(jù)存到 MongoDB》,本文關(guān)鍵詞  python,實(shí)現(xiàn),爬蟲(chóng),數(shù)據(jù),存,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python實(shí)現(xiàn)爬蟲(chóng)數(shù)據(jù)存到 MongoDB》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python實(shí)現(xiàn)爬蟲(chóng)數(shù)據(jù)存到 MongoDB的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 米脂县| 永兴县| 武川县| 临洮县| 舒城县| 盐津县| 岚皋县| 手机| 白朗县| 蓬安县| 毕节市| 东乌| 白玉县| 壤塘县| 赤峰市| 夹江县| 钟山县| 余姚市| 惠水县| 古交市| 新津县| 曲靖市| 米林县| 赞皇县| 濉溪县| 辽宁省| 唐河县| 金寨县| 上栗县| 南康市| 三门峡市| 仁化县| 夏津县| 澄江县| 田林县| 鸡西市| 五台县| 文昌市| 阳江市| 东乡县| 阳信县|