最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)爬蟲(chóng)抓取小說(shuō)功能示例【抓取金庸小說(shuō)】

 更新時(shí)間:2019年08月09日 10:32:44   作者:zhizunyu2009  
這篇文章主要介紹了python實(shí)現(xiàn)爬蟲(chóng)抓取小說(shuō)功能,結(jié)合具體實(shí)例形式分析了使用Python爬蟲(chóng)抓取金庸小說(shuō)的具體操作技巧,需要的朋友可以參考下

本文實(shí)例講述了python實(shí)現(xiàn)爬蟲(chóng)抓取小說(shuō)功能。分享給大家供大家參考,具體如下:

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
from urllib import request
import re
import os,time
#訪(fǎng)問(wèn)url,返回html頁(yè)面
def get_html(url):
  req = request.Request(url)
  req.add_header('User-Agent','Mozilla/5.0')
  response = request.urlopen(url)
  html = response.read()
  return html
#從列表頁(yè)獲取小說(shuō)書(shū)名和鏈接
def get_books(url):#根據(jù)列表頁(yè),返回此頁(yè)的{書(shū)名:鏈接}的字典
  html = get_html(url)
  soup = BeautifulSoup(html,'lxml')
  fixed_html = soup.prettify()
  books = soup.find_all('div',attrs={'class':'bbox'})
  book_dict = {}
  for book in books:
    book_name = book.h3.a.string
    book_url = book.h3.a.get('href')
    book_dict[book_name] = book_url
  return book_dict
#根據(jù)書(shū)名鏈接,獲取具體的章節(jié){名稱(chēng):鏈接} 的字典
def get_parts(url):
  html = get_html(url)
  soup = BeautifulSoup(html,'lxml')
  fixed_html = soup.prettify()
  part_urls = soup.find_all('a')
  host = "http://www.xiaoshuotxt.org"
  part_dict = {}
  for p in part_urls:
    p_url = str(p.get('href'))
    if re.search(r'\d{5}.html',p_url) and ("xiaoshuotxt" not in p_url):
      part_dict[p.string] = host + p_url
  return part_dict
#根據(jù)章節(jié)的url獲取具體的章節(jié)內(nèi)容
def get_txt(url):
  html = get_html(url)
  soup = BeautifulSoup(html,'lxml')
  fixed_html = soup.prettify()
  title = soup.h1.string #獲取文章標(biāo)題
  content = soup.find('div',attrs={'class':'zw'})
  txt = BeautifulSoup.get_text(content) #正文內(nèi)容
  return txt
if __name__ == "__main__":
  root_dir= r'e:\books'
  #url = 'http://www.xiaoshuotxt.org/mingzhu/index_2.html' #第2頁(yè)的小說(shuō)
  url = "http://www.xiaoshuotxt.org/writer/58" #金庸的小說(shuō)
  books = get_books(url)
  for book_name,book_url in books.items():
    os.mkdir(os.path.join(root_dir,book_name))
    part_dict = get_parts(book_url)
    print(book_name,"共:",len(part_dict),"章節(jié)")
    for part_name,part_url in part_dict.items():
      print("正在保存:",part_name)
      f1 = open(r'e:\books\%s\%s.txt'%(book_name,part_name),'w',encoding='utf-8')#以u(píng)tf-8編碼創(chuàng)建文件
      part_txt = get_txt(part_url)
      f1.write(str(part_txt))
      f1.close()
      time.sleep(2)

運(yùn)行效果:

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python Socket編程技巧總結(jié)》、《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python進(jìn)階之遞歸函數(shù)的用法及其示例

    Python進(jìn)階之遞歸函數(shù)的用法及其示例

    本篇文章主要介紹了Python進(jìn)階之遞歸函數(shù)的用法及其示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 如何利用opencv對(duì)拍攝圖片進(jìn)行文字識(shí)別

    如何利用opencv對(duì)拍攝圖片進(jìn)行文字識(shí)別

    在有些工程中有時(shí)候我們需要對(duì)圖片文字識(shí)別,下面這篇文章主要給大家介紹了關(guān)于如何利用opencv對(duì)拍攝圖片進(jìn)行文字識(shí)別的相關(guān)資料,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • 關(guān)于pycharm卡死原因分析

    關(guān)于pycharm卡死原因分析

    這篇文章主要介紹了關(guān)于pycharm卡死原因分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python數(shù)據(jù)處理之pd.Series()函數(shù)的基本使用

    Python數(shù)據(jù)處理之pd.Series()函數(shù)的基本使用

    Series是帶標(biāo)簽的一維數(shù)組,可存儲(chǔ)整數(shù)、浮點(diǎn)數(shù)、字符串、Python 對(duì)象等類(lèi)型的數(shù)據(jù),軸標(biāo)簽統(tǒng)稱(chēng)為索引,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)處理之pd.Series()函數(shù)的基本使用,需要的朋友可以參考下
    2022-06-06
  • python django事務(wù)transaction源碼分析詳解

    python django事務(wù)transaction源碼分析詳解

    這篇文章主要介紹了python django事務(wù)transaction源碼分析詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • python http接口自動(dòng)化腳本詳解

    python http接口自動(dòng)化腳本詳解

    這篇文章主要為大家詳細(xì)介紹了python http接口自動(dòng)化腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python使用pyshark庫(kù)捕獲數(shù)據(jù)包的示例詳解

    python使用pyshark庫(kù)捕獲數(shù)據(jù)包的示例詳解

    PyShark是一個(gè)基于Python的網(wǎng)絡(luò)數(shù)據(jù)包分析工具庫(kù),它允許用戶(hù)捕獲、解碼和分析實(shí)時(shí)網(wǎng)絡(luò)流量,特別是Wi-Fi和TCP/IP協(xié)議的數(shù)據(jù),所以本文給大家介紹了python使用pyshark庫(kù)捕獲數(shù)據(jù)包的示例,需要的朋友可以參考下
    2024-08-08
  • Python使用BeautifulSoup解析并獲取圖片的實(shí)戰(zhàn)分享

    Python使用BeautifulSoup解析并獲取圖片的實(shí)戰(zhàn)分享

    這篇文章主要介紹了Python使用BeautifulSoup解析并獲取圖片的實(shí)戰(zhàn)分享,文中通過(guò)代碼和圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-06-06
  • Python 中的 else詳解

    Python 中的 else詳解

    這篇文章主要介紹了Python 中的 else詳解的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • Python super()方法原理詳解

    Python super()方法原理詳解

    這篇文章主要介紹了Python super()方法原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論

威海市| 法库县| 界首市| 县级市| 岢岚县| 平遥县| 图片| 米泉市| 房山区| 固阳县| 呼伦贝尔市| 乐昌市| 黄梅县| 明光市| 大安市| 紫阳县| 拉萨市| 登封市| 杭锦后旗| 玛纳斯县| 乌恰县| 江门市| 白城市| 九龙坡区| 铜鼓县| 太原市| 咸阳市| 镇平县| 景泰县| 琼结县| 博野县| 丰顺县| 霸州市| 都昌县| 新津县| 陇西县| 南宫市| 宁津县| 富顺县| 博湖县| 长阳|