- Python HTML正文抽取(儲存為JSON) [ 筆記 ]
抽取HTML後的內容,一般都會儲存為JSON或者CSV格式。《Python爬蟲開發與專案實戰》一書中以小說閱讀網為例,抽取出小說的標題、章節、名稱和對應連結,那麼為了保險起見,還是老老實實照著來吧 ——
在抽取之前,作者在書中特意強調了一點,http://seputu.com/是一個靜態網站,它所有的標題章節名稱都不是由JavaScript動態載入的,雖然我不明白作者為什麼要特意強調這一點,但是既然他強調了,作為學習者,我也還是把這個前提提出來,至於為什麼,等我以後學會了爬蟲應該就知道為什麼了,反正現在不管
那麼開啟網站可以看到,整個小說的目錄是醬紫的,這裡只截圖一部分放出來,意思意思就可以了 ——
首先第一步:
當然是先進行網路請求,打印出請求的內容
# -*- coding:utf-8 -*-
import requests
# 1:請求
url = 'http://seputu.com/'
r = requests.get(url)
print r.content
剪下一下列印的內容:
可以看到:
大標題諸如“盜墓筆記1七星魯王宮”在<div class="mulu-title">下,然後其他的各個小章節,都在<div class="box">之下,那麼繼續coding —— 然後我悲催的發現,書上的例子跑不通,於是我只能對著例子刪刪改改:
# -*- coding:utf-8 -*- import requests from BeautifulSoup import * import json list = [] url = 'http://seputu.com/' r = requests.get(url) # 使用GET請求訪問連結 content = r.content if r.status_code == requests.codes.ok: soup = BeautifulSoup(content, fromEncoding='utf-8') # html.parser content = [] for box in soup.findAll('div', attrs={'class': 'box'}): for a in box.findAll('a'): href = a.get('href') # 每個小章節的連結 title = a.get('title') # 每個小章節的標題 list.append({"href": href, "title": title}) for mulu in soup.findAll('div', attrs={'class': 'mulu-title'}): mulu_title = mulu.h2.string # 目錄大標題 content.append({"mulu_title": mulu_title, "content": list}) with open('mytest.json', 'wb') as fp: json.dump(content, fp=fp, indent=4) # dump:把Python物件轉換成JSON物件,並將JSON物件通過fp檔案流寫入到檔案中 else: r.raise_for_status()
截圖一張最終效果:
總算是搞定了,拍桌~
相關推薦
- Python HTML正文抽取(儲存為JSON) [ 筆記 ]
抽取HTML後的內容,一般都會儲存為JSON或者CSV格式。《Python爬蟲開發與專案實戰》一書中以小說閱讀網為例,抽取出小說的標題、章節、名稱和對應連結,那麼為了保險起見,還是老老實實照著來吧 —— 在抽取之前,作者在書中特意強調了一點,http://seputu
json 資料持久化(以賬號和使用者名稱的儲存為例)
以賬號和使用者名稱的儲存為例 一、建立公共類使用者,定義使用者類的欄位:如賬號、密碼等 二、建立公共類列表,在列表類內定義一個使用者類型別的列表,定義列表需要匯入名稱空間System.Collections.Generic 三、儲存使用者 1.建立一個註冊方法 2. 判斷輸入框是否為
JQuery實現AJAX異步請求實現省市聯動(數據傳輸格式為json)
數據傳輸 char html utf-8 har change 字段 語法規則 false json概述:javascript object notation 是一種輕量級的數據交換格式。json本質上就是一種數據格式的字符串;javascript可以直接解析json,因為
python獲取當天時間、昨天時間和明天時間或者n天時間(天為單位)
Python獲取今天時間: >>> datetime.datetime.now() datetime.datetime(2018, 10, 19, 21, 13, 46, 577073) >>> import time >>> t
將python訓練好的模型儲存為pmml檔案供java呼叫
1、PMLL概述 用python訓練好的機器學習模型如果上線部署,被java呼叫,可以將模型儲存為pmml檔案,那麼什麼是pmml呢?PMML是資料探勘的一種通用的規範,它用統一的XML格式來描述我們生成的機器學習模型。這樣無論你的模型是sklearn,R還是Sp
RHCS實現高可用中的共享儲存iscisi(mysql為例)
1、實驗環境 server2 172.25.66.2(配置Nginx、ricci、luci) server3 172.25.66.3(Apache) server4 172.25.66.4 (Apache) server5 172.25.66.5(配置Nginx
vue使用axios傳送post請求(data為json格式)
安裝axios cnpm install axios 在main.js中新增axios,此處注意axios外掛不同於其他,引用不能使用Vue.use();而是使用Vue.prototype.$axios = axios; import axios from '
Python Pillow (PIL) Image.save 儲存為jpg圖片壓縮問題
在使用Pillow中的Image.save()方法,使用預設引數儲存jpg圖片的過程中發現圖片被壓縮的很嚴重,導致原來很大的大小變成幾十K。這是因為在儲存為jpg的過程中,內部使用壓縮演算法對圖片進行的壓縮處理。 但是有些時候往往需要圖片的大小不能變化太大或不能太小。所以在
Python入門經典. 以解決計算問題為導向的Python編程實踐(高清版)PDF
pan https 有助於 開始 lse 打開 重點 好的 字典 Python入門經典. 以解決計算問題為導向的Python編程實踐(高清版)PDF百度網盤鏈接:https://pan.baidu.com/s/1juLsew8UiOErRheQPOuTaw 提取碼:fssd
Python爬蟲 抓取大資料崗位招聘資訊(51job為例)
簡單介紹一下爬蟲原理。並給出 51job網站完整的爬蟲方案。 爬蟲基礎知識 資料來源 網路爬蟲的資料一般都來自伺服器的響應結果,通常有html和json資料等,這兩種資料也是網路爬蟲的主要資料來源。 其中html資料是網頁的原始碼,通過瀏覽器-檢視原始碼可
Python Plot+Bokeh畫圖並儲存為圖片或網頁
近來學習了下python matplotlib繪圖,其功能還是很強大的。 由於需要在一張圖上展示多個子圖,所以用到subplot,python 繪製這種圖的方式有很多種,這裡介紹其中一種方法: 1.第一種畫圖plt.subplots() import nu
如何正確開始一個python專案(django為例)
寫在前面: 如果隨意建立一個python專案,那麼該專案往往會很依賴本地的環境,當專案移植到其他機器上,往往會出現相容性問題(python版本不一致,缺少包等)。本文以django專案為例介紹如何開始一個python專案,包括建立乾淨的python虛擬環境,安
python:linux下字串轉換為JSON
JSON是一種輕量級的資料交換格式,易於人類閱讀和編寫,同時也易於機器解析和生成。由於JSON的諸多優點,已經廣泛使用在各個系統中,因此,我們經常會有將JSON字串轉換為JSON物件的需求。 例如,在筆者的工作過程中,我們的系統會呼叫底層服務的API,底層服務的API一般都是以JSON的格式返回,為
python 將日期戳(五位數時間)轉換為標準時間
data and delta con panda blue important 轉化 col 5位數日期戳 讀取 .mat 文件處理裏面數據時,發現裏面的日期數據全部都是 “5位數” 數字,很不解; 後來查到可以在excel中通過設置單元格調回標
用python 讀取txt檔案並儲存為array
Reading Text Tables with Python Reading tables is a pretty common thing to do and there are a number of ways to read tables besides writi
matlab心形動畫(儲存為gif格式)程式
function M close all clear clc %%初始化 Times=10; [x,y]=meshgrid(-10:0.02:10); %% for T=1:Times z=-(17*x.^2-16*y.*abs(x)+17.*y.^2)
資料儲存(無資料庫版)之一:儲存為JSON
#coding:utf8 #使用Requests訪問http://seputu.com/,獲取並列印HTML文件內容 import requests user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
Python抓取網頁並儲存為PDF
1、開發環境搭建 (1)Python2.7.13的安裝:參考《廖雪峰老師的網站》 (2)Python包管理器pip的安裝:參考《pip安裝文件說明》 因為基於版本2.7.13,因為2.7.9以上已經自帶pip,所以不需要單獨安裝,但是需要我們更新。上面的說
java連線mysql獲取資料儲存為json格式
Java String driver = "com.mysql.jdbc.Driver";//驅動名稱 String url = "jdbc:mysql://loc
python控制窗口移動(軌跡為圓)
most find pytho sin import note true 軌跡 code 需先打開一個無標題記事本, import win32con import win32gui import time import math notepad = wi