欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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
#訪問(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)文章

  • k-means 聚類(lèi)算法與Python實(shí)現(xiàn)代碼

    k-means 聚類(lèi)算法與Python實(shí)現(xiàn)代碼

    這篇文章主要介紹了k-means 聚類(lèi)算法與Python實(shí)現(xiàn)代碼,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python類(lèi)的定義和使用詳情

    Python類(lèi)的定義和使用詳情

    這篇文章主要介紹了Python類(lèi)的定義與使用,類(lèi)名只要是一個(gè)合法的標(biāo)識(shí)符即可,但這僅僅滿足的是?Python?的語(yǔ)法要求:如果從程序的可讀性方面來(lái)看,Python?的類(lèi)名必須是由一個(gè)或多個(gè)有意義的單詞連綴而成的,下文基于這些基礎(chǔ)內(nèi)容展開(kāi)介紹,需要的朋友可以參考一下
    2022-03-03
  • Django中信號(hào)signals的簡(jiǎn)單使用方法

    Django中信號(hào)signals的簡(jiǎn)單使用方法

    這篇文章主要給大家介紹了關(guān)于Django中信號(hào)signals的簡(jiǎn)單使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python中處理字符串之islower()方法的使用簡(jiǎn)介

    Python中處理字符串之islower()方法的使用簡(jiǎn)介

    這篇文章主要介紹了Python中處理字符串之islower()方法的使用,是Python入門(mén)的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python中Qslider控件實(shí)操詳解

    Python中Qslider控件實(shí)操詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于Python中Qslider控件實(shí)操詳解內(nèi)容,對(duì)此有興趣的朋友們可以跟著學(xué)習(xí)參考下。
    2021-02-02
  • Python unittest 簡(jiǎn)單實(shí)現(xiàn)參數(shù)化的方法

    Python unittest 簡(jiǎn)單實(shí)現(xiàn)參數(shù)化的方法

    今天小編就為大家分享一篇Python unittest 簡(jiǎn)單實(shí)現(xiàn)參數(shù)化的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字 Python圖片讀入與處理

    Python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字 Python圖片讀入與處理

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字,Python圖片的讀入與處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • PyCharm 2021.2 (Professional)調(diào)試遠(yuǎn)程服務(wù)器程序的操作技巧

    PyCharm 2021.2 (Professional)調(diào)試遠(yuǎn)程服務(wù)器程序的操作技巧

    本文給大家分享用 PyCharm 2021 調(diào)試遠(yuǎn)程服務(wù)器程序的過(guò)程,通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-08-08
  • Python中的Django基本命令實(shí)例詳解

    Python中的Django基本命令實(shí)例詳解

    這篇文章主要介紹了Python之Django基本命令 ,需要的朋友可以參考下
    2018-07-07
  • Pytorch圖像處理注意力機(jī)制解析及代碼詳解

    Pytorch圖像處理注意力機(jī)制解析及代碼詳解

    這篇文章主要為大家介紹了Pytorch圖像處理注意力機(jī)制解析及代碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評(píng)論