日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Reptile:requests + BeautifulSopu 实现古诗词网三国名著下载

發布時間:2024/1/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Reptile:requests + BeautifulSopu 实现古诗词网三国名著下载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019/1/25凌晨?路飛學城爬蟲課程,requests + BeautifulSoup?庫實現中國古詩詞網站名著《三國演義》的下載

BeautifulSoup?庫是一種常用的網頁解析庫,可以對網頁數據進行解析得到自己想要的數據,一下為基礎方法:

屬性和方法:

soup = BeautifulSoup(響應對象文本html,‘lxml')

1.根據標簽名進行查找:

  -soup.a?對對象中的a標簽進行查找,只能返回找到的第一個

2.?獲取屬性:

  - soup.a.attrs?獲取a?標簽下所有的屬性值,對應找到的第一個標簽下所有的屬性值,返回一個字典類型

  - soup.a.attrs['href']?獲取a標簽下指定的href屬性值

  - soup.a['href']?作用同上 (簡寫方式,常用)

3.?獲取內容:

  - soup.a.string?獲取a標簽的直屬文本,也就是只能獲取a標簽本身的文本內容,再下一級的就獲取不到了

  - soup.a.text?獲取a標簽下的所有內容,獲取a標簽及其下級標簽的文本內容

  - soup.a.get_text()?效果同上,具體差異不清楚

4. find:?找到第一個符合要求的標簽

  - suop.find('a')?找到第一個符合要求的a標簽并返回

  - soup.find('a', title='xxx')?可以指定標簽的屬性,同上也是返回找到的第一個

  可以作用到屬性,類、ID等

5. findAll:找到所有符合要求的標簽 (A?不可小寫,小寫會報錯)

  - soup.findAll('a')?找到對象中所有的a標簽并返回一個列表

  - soup.findAll('a','b')?找到對象中所有的a和b標簽

  - soup.findAll('a', title='xxx')?找到對象中所有符合要求的a標簽

6.根據選擇器選擇指定的內容

  - soup.select()?適用與對css選擇器比較熟悉的,雖然我不熟悉,但是我覺得這個很好用啊

  - soup.select('.xxx li')?表示某個標簽下的所有的a標簽

7.還有子、子孫,父、祖先,兄弟節點等

  - soup.a.contents?獲取a標簽下所有的子節點,子節點的子節點獲取不了

  - soup.a.children?獲取a標簽下的所有的節點。

  -?soup.a.descendants?獲取a標簽下的所有的子節點對應的子節點

  -?soup.a.parent?獲取a標簽的父級節點

  -?soup.a.parents?獲取a標簽的所有的上級節點直到文檔的最頂層

  -?soup.a.next_siblings?獲取a標簽的下一個兄弟節點(平行節點?)這個我到現在都沒有搞明白

  ?soup.a.previous siblings?獲取a標簽的上一個兄弟節點(平行節點?)同上這個我還是沒有搞明白

?

需求:獲取古詩詞網的名著數據,并寫入

標題也就是章節名和對應的內容不是在一個URL下的,所以要先解析出標題和標題內的URL,再對URL再次發起請求獲取對應的內容

# -*- coding: utf-8 -*- # ------ wei、yu ------# 需求:爬取詩詞名句網的歷史典籍全部import requests from bs4 import BeautifulSoup import os import time import random# 生成文件目錄 if not os.path.exists('./History Books'):os.mkdir("History Books")def _book_list(url):book_list_response = requests.get(url=url, headers=headers)if book_list_response.status_code == 200:book_list_text = book_list_response.text# 調用Beautiful解析出書名列表,和書名對應的urlsoup = BeautifulSoup(book_list_text, 'lxml')bookInfo = soup.select('.bookmark-list a')book_list_response.close()return bookInfoelse:print('內容數據請求失敗,請重新嘗試')exit()def _title_list(url):title_list_response = requests.get(url=url, headers=headers)if title_list_response.status_code == 200:title_list_text = title_list_response.text# 調用Beautiful解析出章節列表和章節對應的內容urlsoup = BeautifulSoup(title_list_text, 'lxml')titleList = soup.select('.book-mulu a')title_list_response.close()return titleListelse:print('內容數據請求失敗,請重新嘗試')exit()def _content(url):content_response = requests.get(url=url, headers=headers)if content_response.status_code == 200:content_text = content_response.text# 調用Beautiful解析出章節對應的內容soup = BeautifulSoup(content_text, 'lxml')content1 = soup.find('div', class_='chapter_content')content_response.close()return content1.get_text()else:print('內容數據請求失敗,請重新嘗試')exit()# 指定url和請求頭參數 home_page_url = 'http://www.shicimingju.com/book/' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/65.0.3325.181 Safari/537.36' } while 1:try:# 首先調用_book_list對首頁鏈接發起請求,獲得返回的書名列表booklists = _book_list(home_page_url)# 獲取書名和書名對應的完整urlfor info in booklists:bookName = info.string # 書名bookUrl = 'http://www.shicimingju.com' + info['href'] # 書名對應的完整url# 生成書名對應的文件句柄,每本書生成一個文件fileInfo = "History Books/" + str(bookName) + '.txt'fp = open(fileInfo, 'w', encoding='utf-8')for i in range(random.randint(0, 5)):print('\033[1;34m 數據請求中.....\033[m')time.sleep(0.2)print('\033[1;31m 數據請求成功,開始下載.....\033[m')time.sleep(0.2)# 接下來調用_title_list對書名對應的url發起請求,獲得返回的章節標題titlelists = _title_list(bookUrl)# 獲取章節名稱和章節對應的完整urlfor title in titlelists:titleName = title.string # 章節名稱titleUrl = 'http://www.shicimingju.com' + title['href'] # 章節對應的完整url# 接下來調用 _content 對章節對應的url發起請求,獲得返回的內容數據content = _content(titleUrl)try:fp.write(titleName + "" + content + '\n\n')print('\033[34m %s \033[m \033[31m %s \033[m 寫入完成..' % (bookName, titleName))time.sleep(0.1)except:print('\n \033[1;31m 數據寫入異常,跳過.. \033[m \n')print('\033[1;31m 重新嘗試接入.. \033[m')time.sleep(2)fp.close()exit('獲取完成,程序結束')except:print('\n 10053 錯誤! \n ') # 這里不知道為什么會報一個10053的錯誤,網上搜索了一下看說是網絡問題還是啥的,沒有解決,這樣循環會出現一旦報錯就會重寫全部文件,很麻煩,一開始在公司測試的時候沒有什么問題,在家的時候才出現的continue

?

轉載于:https://www.cnblogs.com/wei-yu/p/10319123.html

總結

以上是生活随笔為你收集整理的Reptile:requests + BeautifulSopu 实现古诗词网三国名著下载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜激情一区 | 免费观看黄色的网站 | 中国成熟妇女毛茸茸 | 黄一区二区三区 | 在线观看免费视频a | 国产一二精品 | 日日日日日日bbbbbb | 欧美三级免费看 | 人妻精品无码一区二区 | 午夜亚洲av永久无码精品 | 亚欧在线 | 久久露脸国语精品国产 | 亚洲无码高清精品 | 男女激情免费网站 | 日韩毛片在线 | 91伦理视频| 亚洲视频在线免费观看 | av中文字幕av | 影音先锋中文在线 | а√天堂8资源在线官网 | www.国产色 | 日韩插插插 | 五月天免费网站 | 中文字幕人妻熟女在线 | 国产黄a三级三级三级看三级男男 | 高h视频在线观看 | 中文字幕日韩一区二区 | 92精品| 亚洲精品网站在线播放gif | 久久99热这里只有精品 | 韩国三级一区 | 欧美又粗又深又猛又爽啪啪九色 | a级片免费观看 | 国产成人精品无码片区在线 | 91精品综合久久久久久五月天 | 国产中文一区二区三区 | 欧美激情黑白配 | 日韩av片在线播放 | 中国av一级片 | 夜夜嗨老熟女av一区二区三区 | 国产精品麻豆果冻传媒在线播放 | 夫妻淫语绿帽对白 | 一级黄色片网址 | 亚洲精品91 | youjizz韩国| 久操青青 | 男女又爽又黄 | 精品无码一区二区三区的天堂 | 九九热国产精品视频 | 四虎国产精品永久在线国在线 | 国产精品久久久久影院 | 国产视频一区二区三 | a级片在线 | 91黄色视屏 | 国产高清av在线 | 黄网站在线观看 | 蜜桃av噜噜一区二区三区麻豆 | av不卡在线观看 | 女同性恋一区二区三区 | 久久2018 | 在线看片黄| 日韩在线播放一区二区 | 美女视频黄色 | 男人天堂av网站 | 日本免费高清一区二区 | 亚洲男人天堂久久 | 调教撅屁股啪调教打臀缝av | 少妇精品视频一区二区 | 91插插插影库永久免费 | 亚洲最大福利视频 | 啪啪网免费 | 国产视频在线观看免费 | 成人手机在线视频 | 国产黑丝av| 香蕉视频官网在线观看 | 国产精品91在线观看 | 欧美日韩六区 | 久草加勒比 | av在线免费观看不卡 | jizzjizz美国| 欧美精品一二 | av五月| 欧美11p| 俄罗斯美女一级爱片 | 国产一级爱c视频 | 一区二区三区免费高清视频 | 亚洲国产精品无码久久 | 亚洲第一伊人 | 新x8x8拨牐拨牐永久免费影库 | 亚洲精品婷婷 | a人片| 最近最新中文字幕 | 农民工hdxxxx性中国 | 国产高清免费观看 | xxxx日韩| 永久免费快色 | 成人免费毛片嘿嘿连载视频 | 九七伦理电影 | 91成人毛片 |