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

歡迎訪問 生活随笔!

生活随笔

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

python

python识别屏幕内容_python之屏幕抓取

發(fā)布時間:2023/12/16 python 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python识别屏幕内容_python之屏幕抓取 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Tidy 和 HTML 解析

Beautiful Soup

屏幕抓取:是通過程序下載網(wǎng)頁并從中提取信息的過程。

簡單來見:下載數(shù)據(jù)并對其進行分析

思路:可使用urllib來獲取網(wǎng)頁的HTML代碼,再使用正則表達式從中提取信息。

例如:假設要從python Job Board(http://python.org/jobs)提取招聘單位的名稱和網(wǎng)站。

通過查看該網(wǎng)站的源代碼,可發(fā)現(xiàn)類似于下面的鏈接中找到名稱和URL:

Python Engineer

如下:簡單的屏幕抓取程序

from urllib.request importurlopenimportre

p= re.compile('(.*?)')

text= urlopen('http://python.org/jobs').read().decode()for url,name inp.findall(text):print('{}({})'.format(name,url))

以上代碼需要跟進的地方:

1.正則表達式一點都不容易理解。如果HTML代碼和查詢更復雜,那正則表達式就難以理解和維護

2.無法處理獨特的HTML內容;比如CDATA部分和實符字體(如&amp)

正則表達式依賴于HTML代碼的細節(jié),并不是抽象的結構;意味著只要網(wǎng)頁的結構發(fā)生一點點變化,那這個程序可能就無效了。

針對基于正則表達式的方法存在的問題,可有兩種解決方案:

(1)結合使用程序Tidy(一個python庫)和XHTML解析

(2) 使用專為屏幕抓取而設計的Beautiful Soup

Tidy 和XHTML解析

Tidy是用于對格式不正確且不嚴謹?shù)腍TML進行修復的工具,它非常聰明,能夠修復很多常見的錯誤,從而完成大量你不愿意做的工作。它還提供了極大的配置空間,讓你能夠開 / 關各種校正。

當然,Tidy并不能修復HTML文件存在的所有問題,但確實能夠確保文件是格式良好的(即所有元素都嵌套正確),這讓解析工作容易很多。

獲取Tidy

有多個用于python的Tidy庫包裝器,至于哪個最新并非固定不變的,找使用pip來找出可供使用的包裝器:

$pip search tidy

可選擇安裝PyTidyLib:

$ pip install pytidylib

并非一定要安裝Tidy庫包裝器。如果你是用的是unix或者linux系統(tǒng),很可能已經(jīng)默認安裝了命令行版Tidy。此外,不管使用的是什么系統(tǒng),都可以從Tidy網(wǎng)站上獲取可執(zhí)行的二進制版本,有了二進制版本之后,就可以使用模塊subprocess(或其他包含open函數(shù)的模塊)來運行Tidy程序了。

如果python找不到tidy,可能需要提供這個可執(zhí)行文件的完整路徑。

XHTML 和 HTML的主要區(qū)別在于,XHTML非常嚴格,要求顯式地結束所有的元素;

因此,在HTML可通過(使用標簽

)開始另一個段落來結束當前段落,但在XHTML中,必須先(使用標簽

)顯式地結束當前段落。這讓XHTML解析起來容易得多,因為你能清除地直到何時進入或者離開各種元素,

XHTML的另一個優(yōu)點:它是一種XML方言,可食用各種出色的工具(XPath)來處理

要求對Tidy生成的格式良好的XHTML進行解析,一種非常簡單的方式就是使用標準庫模塊html.parser中的HTMLParser類

待補充~

總結

以上是生活随笔為你收集整理的python识别屏幕内容_python之屏幕抓取的全部內容,希望文章能夠幫你解決所遇到的問題。

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