網頁內容爬取 如何提取正文內容

2022-02-20 10:54:02 字數 896 閱讀 9440

建立乙個新**,一開始沒有內容,通常需要抓取其他人的網頁內容,一般的操作步驟如下:

為每個網頁寫特徵分析這個還是太耗費開發的時間,我的思路是這樣的。

python的beautifulsoup包大家都知道吧,

import beautifulsoup

soup = beautifulsoup.beautifulsoup(html)

利用這個包先把html裡script,style給清理了:

[script.extract() for script in soup.findall('script')]

[style.extract() for style in soup.findall('style')]

清理完成後,這個包有乙個prettify()函式,把**格式給搞的標準一些:

soup.prettify()
然後用正規表示式,把所有的html標籤全部清理了:

reg1 = re.compile("]*>")

content = reg1.sub('',soup.prettify())

剩下的都是純文字的檔案了,通常是一行行的,把空白行給排除了,這樣就會知道總計有多少行,每行的字元數有多少,我用excel搞了一些每行字元數的統計,如下圖:

x座標為行數,y座標為該行的字元數

很明顯,會有乙個峰值,81~91行就應該是這個網頁的正文部分。我只需要提取81~91行的文字就行了。

問題來了,照著這個思路,有什麼好的演算法能夠通過資料分析的方式統計出長文字的峰值在哪幾行?

附帶乙個開源的提取文字的python包,

Python爬取網頁內容

其時序圖如圖所示。給定乙個要訪問的url,獲取這個html及內容,遍歷html中的某一類鏈結,如a標籤的href屬性,從這些鏈結中繼續訪問相應的html頁面,然後獲取這些html的固定標籤的內容,如果需要多個標籤內容,可以通過字串拼接,最後通過正規表示式刪除所有的標籤,最後將其中的內容寫入.txt檔...

python lxml爬取網頁內容

from lxml import etree import requests url response requests.get url text response.text html etree.html text 先獲取到這個頁面的html,對了,這裡還用到了xpath來選擇節點,具體用法請參考...

靜態網頁內容爬取(python)

以 漏洞掃瞄為例 from bs4 import beautifulsoup from urllib.request import urlopen import pymysql as mysqldb import re import os 插入資料 def insertdata lis cursor...