jupyterLab學習第二天
阿新 • • 發佈:2020-11-05
簡單爬取一個小說網站
首先得在控制檯中下載安裝requests-html
安裝requests-html非常簡單,一行命令即可做到。需要注意一點就是,requests-html只支援Python 3.6及更新的版本,所以使用老版本的Python的同學需要更新一下Python版本了。看了下原始碼,因為requests-html廣泛使用了一個Python 3.6中的新特性——型別註解。
pip install requests-html
具體程式碼
from requests_html import HTMLSession
import requests
session = HTMLSession()
url = 'http://bbs.tianya.cn/post-culture-488321-1.shtml'
r = session.get('http://bbs.tianya.cn/post-culture-488321-1.shtml')
author = r.html.find('div.atl-info span a', first=True).text
div = r.html.find('div.atl-pages', first=True)
links = div.find('a')
total_page = 1 if links == [] else int(links[-2].text)
title = r.html.find('span.s_title span', first=True).text
with open('douban.txt', 'w+', encoding='utf-8') as f: for i in range(1, total_page + 1): s = url.rfind('-') r = session.get(url[:s + 1] + str(i) + '.shtml') # 從剩下的裡面找樓主的帖子 items = r.html.find(f'div.atl-item[_host={author}]') for item in items: content: str = item.find('div.bbs-content', first=True).text # 去掉回覆 if not content.startswith('@'): f.write(content + "\n")
這裡需要在目錄下新建一個douban文字檔案儲存爬取後的資料