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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python获取已打开网页的html,【已解决】Python的BeautifulSoup去实现提取带tag的HTML网页主体内容...

發布時間:2025/3/15 python 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python获取已打开网页的html,【已解决】Python的BeautifulSoup去实现提取带tag的HTML网页主体内容... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

折騰:

【未解決】Python的html網頁主體內容提取

期間,去試試BeautifulSoup提取HTML網頁主體內容

先去隨便找個合適的網頁

-》

簡單看了看網頁內容結構:

發現是:

網頁主體內容是://*[@id="articleContent"]

/html/body/div[4]/div[1]/div[1]/div[4]

這部分其下的內容,才是新聞主體內容。

此處暫時就模擬獲取articleContent其下的內容,視為文章主體內容

然后用代碼:# Function: Use BeautifulSoup to extract body content of HTML web page

# Author: Crifan

# Update: 20200721

import os

import codecs

from datetime import datetime, timedelta

from bs4 import BeautifulSoup

import requests

################################################################################

# Config

################################################################################

CurrentFolder = os.getcwd()

CurrentFolder = os.path.abspath(CurrentFolder)

OutputRoot = os.path.join(CurrentFolder, "HtmlExtract", "output")

################################################################################

# Util Functions

################################################################################

def datetimeToStr(inputDatetime, format="%Y%m%d_%H%M%S"):

"""Convert datetime to string

Args:

inputDatetime (datetime): datetime value

Returns:

str

Raises:

Examples:

datetime.datetime(2020, 4, 21, 15, 44, 13, 2000) -> '20200421_154413'

"""

datetimeStr = inputDatetime.strftime(format=format)

# print("inputDatetime=%s -> datetimeStr=%s" % (inputDatetime, datetimeStr)) # 2020-04-21 15:08:59.787623

return datetimeStr

def getCurDatetimeStr(outputFormat="%Y%m%d_%H%M%S"):

"""

get current datetime then format to string

eg:

20171111_220722

:param outputFormat: datetime output format

:return: current datetime formatted string

"""

curDatetime = datetime.now() # 2017-11-11 22:07:22.705101

# curDatetimeStr = curDatetime.strftime(format=outputFormat) #'20171111_220722'

curDatetimeStr = datetimeToStr(curDatetime)

return curDatetimeStr

def saveTextToFile(fullFilename, text, fileEncoding="utf-8"):

"""save text content into file"""

with codecs.open(fullFilename, 'w', encoding=fileEncoding) as fp:

fp.write(text)

fp.close()

################################################################################

# Main

################################################################################

# 【圖】超級播報:特斯拉市值背后的技術趨勢_汽車之家

postUrl = "https://www.autohome.com.cn/news/202007/1014507.html?pvareaid=3311314"

resp = requests.get(postUrl)

respHtml = resp.text

# soup = BeautifulSoup(respHtml)

soup = BeautifulSoup(respHtml, "html.parser")

postHtml = str(soup.html)

# print("postHtml=%s" % postHtml)

curDatetimeStr = getCurDatetimeStr()

saveHtmlFileName = "html_%s.html" % curDatetimeStr

saveHtmlFilePath = os.path.join(OutputRoot, saveHtmlFileName)

saveTextToFile(saveHtmlFilePath, postHtml)

就保存出對應html文件了:

然后去打開看看效果,結果:

即:

【已解決】BeautifulSoup導出的網頁內容中圖片無法顯示原因是把前綴https:變成file:了

至此,算是內容上,就基本OK了。

對于提取主體內容,即:

的://*[@id="articleContent"]

和此處

的:article

就以后再折騰。

【后記20200722】

再去折騰,提取主體內容,此處暫時用手動寫規則的辦法。

借用Chrome去復制出xpath:

//*[@id="content_bit"]/article

不過此處發現article只有一處:

所以為了簡單起見,直接用article也就可以了。

不過其中遇到:

【已解決】BeautifulSoup中find得到的soup節點如何獲取自身及其下子孫節點的html源碼

繼續

總結

以上是生活随笔為你收集整理的python获取已打开网页的html,【已解决】Python的BeautifulSoup去实现提取带tag的HTML网页主体内容...的全部內容,希望文章能夠幫你解決所遇到的問題。

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