網(wǎng)站性能檢測(cè)評(píng)分
注:本網(wǎng)站頁(yè)面html檢測(cè)工具掃描網(wǎng)站中存在的基本問(wèn)題,僅供參考。
python3吧
python3網(wǎng)絡(luò)爬蟲(chóng) (6)-分析知乎問(wèn)題頁(yè)面數(shù)據(jù) 營(yíng)銷視頻課程
注:本文只做數(shù)據(jù)來(lái)源分析,暫未抓取數(shù)據(jù)
1. 打開(kāi)知乎頁(yè)面(地址來(lái)自上次爬蟲(chóng)爬取的數(shù)據(jù))
示例: https://zhihu/question/41508191
2. 打開(kāi)可以看到需要抓取的數(shù)據(jù)有(標(biāo)簽、標(biāo)題、描述、答案)
頁(yè)面
3. 查看網(wǎng)頁(yè)請(qǐng)求狀況(由于該問(wèn)題答案較少,暫時(shí)用 https://zhihu/question/65381487 查看接口數(shù)據(jù))
可以發(fā)現(xiàn)答案的接口。(還有相似問(wèn)題和相關(guān)live,暫時(shí)沒(méi)有用到)
查看接口
4. 由于我們請(qǐng)求到的網(wǎng)頁(yè)中的js是不會(huì)執(zhí)行的,所以我們先禁用瀏覽器js(js禁用方法,請(qǐng)自行百度)
禁用js后的頁(yè)面
5. 接口只能看到答案,所以我們還需要在頁(yè)面上找到其他數(shù)據(jù)
經(jīng)過(guò)對(duì)比發(fā)現(xiàn),js執(zhí)行過(guò)的描述是有圖片的,但是js未執(zhí)行的沒(méi)有圖片,描述不夠完整。
但是沒(méi)有描述的請(qǐng)求,所以,猜測(cè)描述被隱藏在了頁(yè)面的其他地方
搜索中的描述部分內(nèi)容,可以發(fā)現(xiàn)確實(shí)被隱藏在了標(biāo)簽中
6. 將描述內(nèi)容格式化
格式化后發(fā)現(xiàn),需要獲取的標(biāo)簽、標(biāo)題、描述等信息均在里面,不用再去網(wǎng)站上查找其他接口
格式化數(shù)據(jù)
喜歡就點(diǎn)個(gè)贊吧!
Python 2將退出,Python3 現(xiàn)在到你登場(chǎng)了! 企業(yè)視頻課程
Python的創(chuàng)始人——Guido,荷蘭人,從阿姆斯特丹大學(xué)獲得了數(shù)學(xué)和計(jì)算機(jī)碩士學(xué)位。然而,盡管他算得上是一位數(shù)學(xué)家,但他更加享受計(jì)算機(jī)帶來(lái)的樂(lè)趣。Guido希望有一種語(yǔ)言,這種語(yǔ)言能夠像C語(yǔ)言那樣,能夠全面調(diào)用計(jì)算機(jī)的功能接口,又可以像shell那樣,可以輕松的編程。于是python就產(chǎn)生了。我最看重Python的效率高:Python 語(yǔ)言因?yàn)橛辛素S富強(qiáng)大的類庫(kù),所以,Python 的開(kāi)發(fā)效率能夠顯著提高。實(shí)現(xiàn)相同的功能,Python 代碼的文件往往只有 C、C++ 和 Java 代碼的 1/5~1/3。這也是為什么各大互聯(lián)網(wǎng)公司廣泛使用 Python 語(yǔ)言的原因。
可以看到 Python 2.7 預(yù)計(jì)將于兩年后退休。
該開(kāi)發(fā)者表示,由于官方尚未放出準(zhǔn)確的日期,所以預(yù)計(jì) Python 2.7 于 2020 年 4 月 12 日退休,這是到時(shí) PyCon 的舉辦時(shí)間。
Python 2,感謝您多年以來(lái)的忠誠(chéng)服務(wù)。
Python 3,現(xiàn)在到你登場(chǎng)了。
Python 2.7 是 2.x 系列的最后一個(gè)版本,它的繼承者 Python 3.0 在 2008 年 12 月發(fā)布,但不兼容 2.x 系列,3.0 的許多特性和語(yǔ)法向后移植到了 2.6 和 2.7。2.7 的支持時(shí)間將最少為 10 年,2020 年前會(huì)一直提供 bug 修正。
如何轉(zhuǎn)換到 Python 3?
如果你主要的代碼仍然基于 Python 2,這是完全可以理解的。PyPI 的大部分流行軟件包現(xiàn)在都可以在 Python 2 和 Python 3 上運(yùn)行,而且每天都會(huì)增加更多。為了簡(jiǎn)化轉(zhuǎn)換, 官方移植指南提供了在 Python 3 中運(yùn)行 Python 2 代碼的建議。
Python 2.7
在 2008 年 Python 3.0 的發(fā)布之后,Python 2.7 于 2010 年 7 月 3 日發(fā)布,并計(jì)劃作為 2.x 版本的最后一版。發(fā)布 Python 2.7 的目的在于,通過(guò)提供一些測(cè)量?jī)烧咧g兼容性的措施,使 Python 2.x 的用戶更容易將功能移植到 Python 3 上。這種兼容性支持包括了 2.7 版本的增強(qiáng)模塊,如支持測(cè)試自動(dòng)化的 unittest,用于解析命令行選項(xiàng)的 argparse,以及更方便的集合類。
Python 3
Python 3 被視為 Python 的未來(lái),是目前正在開(kāi)發(fā)中的語(yǔ)言版本。作為一項(xiàng)重大改革,Python 3 于 2008 年年末發(fā)布,以解決和修正以前語(yǔ)言版本的內(nèi)在設(shè)計(jì)缺陷。Python 3 開(kāi)發(fā)的重點(diǎn)是清理代碼庫(kù)并刪除冗余,清晰地表明只能用一種方式來(lái)執(zhí)行給定的任務(wù)。
Python 2.7 具有 Python 2 和 Python 3.0 之間的早期迭代版本的獨(dú)特位置,它因?yàn)閷?duì)許多具有魯棒性的庫(kù)具有兼容性,對(duì)于程序員而言一直是非常流行的選擇。當(dāng)我們今天討論 Python 2 時(shí),我們通常指的是 Python 2.7 版本,因?yàn)樗亲畛S玫陌姹尽H欢?,Python 2.7 被認(rèn)為是一種遺留語(yǔ)言,且它的后續(xù)開(kāi)發(fā),包括現(xiàn)在最主要的 bug 修復(fù),將在 2020 年完全停止。
對(duì) Python 3.0 的主要修改包括將 print 語(yǔ)句更改為內(nèi)置函數(shù),改進(jìn)整數(shù)分割的方式,并對(duì) Unicode 提供更多的支持。起初,Python 3的采用很緩慢,因?yàn)樵撜Z(yǔ)言不能向后兼容 Python 2,這就需要人們決定該使用哪個(gè)版本的語(yǔ)言。此外,許多封裝庫(kù)庫(kù)只適用于 Python 2,但是由于 Python 3 背后的開(kāi)發(fā)團(tuán)隊(duì)重申了終止對(duì) Python 2 的支持,促使更多的庫(kù)被移植到 Python 3 上來(lái)。從對(duì) Python 3 提供支持的 Python 包的數(shù)量可以看出,Python 3 已得到越來(lái)越多的采用,在撰寫本文時(shí),支持它的包就已包括了 339 個(gè)最受歡迎的 Python 包。
好了,今天的知識(shí)就分享到這里,如果在學(xué)習(xí)Python的路上遇到學(xué)習(xí)的問(wèn)題,歡迎和小編交流學(xué)習(xí),你有好的學(xué)習(xí)Python方法,歡迎在下面評(píng)論區(qū)留言,一起討論。你現(xiàn)在用的Python2.7版本還是Python3x?
初學(xué)者可以直接學(xué)Python3嗎? 行業(yè)視頻課程
我是個(gè)喜歡嘗鮮的人,所以機(jī)器上的JDK、GoLang都是最新的,反正PC也不是生產(chǎn)環(huán)境。最近重裝機(jī)器,又正好看到Python 3.7的Alpha版本出來(lái)了,就下載了個(gè)最新的版本裝上,結(jié)果悲劇了,pip安裝TensorFlow死活不行。折騰小半天,還是乖乖地?fù)Q回3.6.x,這是TensorFlow Python API所支持的最新版本。
Python 3.6.2
前些日子,跟兩個(gè)兄弟聊天,突然奇想,打算做個(gè)MUD游戲來(lái)懷下舊。有個(gè)很不錯(cuò)的MUD的框架叫Evennia,是Python寫的,而且是基于2.7的。我對(duì)機(jī)器的軟件環(huán)境有一種近乎變態(tài)的要求,混亂的版本搞在一起當(dāng)然不能接受,于是就用另一臺(tái)筆記本安裝了Python 2.7,用不同的電腦做不同的事。
大家都曉得,Python 2和3的差異很大,所以官方也還在同時(shí)維護(hù)2.7和3.x兩套東西。這么多年過(guò)去了,Python社區(qū)做了很多2to3的兼容性工作,按理說(shuō)不存在選擇2還是3的問(wèn)題了。但是有一些老頑固的人和老頑固的庫(kù)還在堅(jiān)守2.x,這就給初學(xué)者帶來(lái)了困惑,到底該學(xué)哪一個(gè)。
對(duì)于初學(xué)者,我的建議當(dāng)然是直接學(xué)Python 3,除非有明確的指征要求你必須用Python 2(比如我想做MUD的例子)。
Python 3和2在語(yǔ)法層面改進(jìn)很大,所以源代碼是不兼容的。Python 3是2008年發(fā)布的,至今10年了;Python 2的最后一個(gè)分支2.7是2010年中期發(fā)布的,此后就沒(méi)有大的改動(dòng)了。從性價(jià)比的角度,也應(yīng)該選擇學(xué)習(xí)Python 3,而不是花時(shí)間去鼓搗2.x。
從Python 3.3(2012年Release的)開(kāi)始,所有對(duì)標(biāo)準(zhǔn)庫(kù)的改進(jìn),都只在3.x版本中體現(xiàn)。這也表明了Python社區(qū)從2.x遷移到3.x的決心。Python官方網(wǎng)站上有一篇名叫《Should I use Python 2 or Python 3 in my development activity》的文章,有一句開(kāi)宗明義的話:
Python 2.x is legacy, Python 3.x is the present and future of the language
作為初學(xué)者,是愿意跟一個(gè)前朝遺老玩呢,還是愿意跟進(jìn)Python的現(xiàn)狀及未來(lái)?
最讓人擔(dān)心的,其實(shí)是第三方庫(kù)和框架,有的還在繼續(xù)用Python 2.x。我翻了一下github上的一些項(xiàng)目,發(fā)現(xiàn)但凡還停留在2.x的,基本處于沒(méi)人維護(hù)的狀態(tài)。大多數(shù)廣泛使用的庫(kù),都已經(jīng)兼容Python 3了。Python官網(wǎng)上列出了一些,包括機(jī)器學(xué)習(xí)中最常用的數(shù)值計(jì)算庫(kù)Numpy和SciPy,機(jī)器視覺(jué)常用的OpenCV 3, HTTP庫(kù)Request,XML PARSER庫(kù)lxml,WEB框架Django.....關(guān)于3和2的兼容性,pythonhosted上有篇文章《Six: Python 2 and 3 Compatibility Library》講得非常詳細(xì),大家可以參考。
最新的Release::Python 3.6.4
可能也會(huì)有高手告訴新手,語(yǔ)法層面的差別不算事兒,Py2和Py3沒(méi)有區(qū)別,編程思想數(shù)據(jù)結(jié)構(gòu)算法才是核心吧啦吧啦,但是我覺(jué)得手鋸和電鋸還是有區(qū)別的。Python作為一門如日中天的動(dòng)態(tài)語(yǔ)言,在不斷進(jìn)化,語(yǔ)法改進(jìn)的背后,也就是“編程思想”的改進(jìn)。PL作為一個(gè)艱深的計(jì)算機(jī)科學(xué)分支,語(yǔ)法演化的背后是有深刻的思想性的東西的,輕視語(yǔ)法及其語(yǔ)義是不對(duì)的。
我的一個(gè)朋友遵循最新的C# Spec寫了一個(gè)軟件,然后告訴我說(shuō):這代表了我2017年的編程水準(zhǔn)(他從1988年開(kāi)始編程)。我看了看,好多我沒(méi)見(jiàn)過(guò)的東西。雖然前幾年我也用C#寫過(guò)一款賴以謀生的軟件產(chǎn)品,但編程方式還比較古老一點(diǎn),沒(méi)有深入了解C#語(yǔ)言的最新發(fā)展,換言之,也沒(méi)有了解C#的最新的編程思想。
新的一年里,如果想學(xué)一門新的手藝,就學(xué)Python 3吧。
史上最全面的python3 文件操作,不可錯(cuò)過(guò)哦! 推廣視頻課程
1、從鍵盤輸入
Python 2有兩個(gè)內(nèi)置的函數(shù)用于從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),默認(rèn)情況下來(lái)自鍵盤。這兩個(gè)函數(shù)分別是:input()和raw_input()。
Python 3中,不建議使用raw_input()函數(shù)。 input()函數(shù)可以從鍵盤讀取的全都會(huì)轉(zhuǎn)化為字符串類型。
圖中可以看出 就算我們輸入 123456789 input() 函數(shù) 還是完全把他看做 字符串
2、打開(kāi)和關(guān)閉文件
Python提供了默認(rèn)操作文件所必需的基本功能和方法??梢允褂梦募?duì)象執(zhí)行大部分文件操作。
一下方法為 Python內(nèi)置 方法,不需要導(dǎo)入包。
1、打開(kāi)文件
在讀取或?qū)懭胛募埃仨毷褂肞ython的內(nèi)置open()函數(shù)打開(kāi)文件。此函數(shù)創(chuàng)建一個(gè)文件對(duì)象,該對(duì)象將用于調(diào)用與其相關(guān)聯(lián)的其他支持方法。
在 Pycharm IDE 中 輸入 open(), 然后按住 Ctrl 并且鼠標(biāo)單擊 open,即可查看 open 方法。
參數(shù):
file:參數(shù)是一個(gè)字符串類型,指定要訪問(wèn)的文件名稱
mode:確定文件打開(kāi)的模式,即讀取,寫入,追加等。可能的值的完整列表如下表所示。 這是一個(gè)可選參數(shù),默認(rèn)文件訪問(wèn)模式為(r - 也就是只讀)。
一般情況下 只需要 填入這兩個(gè)參數(shù)即可,其他保持默認(rèn)。
以下是打開(kāi)文件使用的模式的列表 :
2、文件對(duì)象屬性
打開(kāi)一個(gè)文件并且有一個(gè)文件對(duì)象后,可以獲得與該文件相關(guān)的各種信息。
以下是與文件對(duì)象相關(guān)的所有屬性的列表:
3、close() 方法
文件對(duì)象的close()方法刷新任何未寫入的信息并關(guān)閉文件對(duì)象,之后不能再進(jìn)行寫入操作。
當(dāng)文件的引用對(duì)象重新分配給另一個(gè)文件時(shí),Python也會(huì)自動(dòng)關(guān)閉一個(gè)文件。但使用close()方法關(guān)閉文件是個(gè)好習(xí)慣。
語(yǔ)法:fileName.close()
3、讀取與寫入文件
文件對(duì)象提供了一組訪問(wèn)方法,使代碼編寫更方便。read()和write()方法 分別用來(lái)讀取和寫入文件。
1、write()方法
write()方法將任何字符串寫入打開(kāi)的文件。 重要的是要注意,Python字符串可以是二進(jìn)制數(shù)據(jù),而不僅僅是文本。
write()方法不會(huì)在字符串的末尾添加換行符(‘\n‘)
只需要一個(gè)參數(shù),即需要寫入的文本內(nèi)容
PS.打開(kāi)文件的時(shí)候需要給予寫入的相關(guān)權(quán)限。
2、read()方法
read()方法用于從打開(kāi)的文件讀取一個(gè)字符串。 重要的是要注意Python字符串除文本數(shù)據(jù)外可以是二進(jìn)制數(shù)據(jù)。
這里,傳遞參數(shù) n 是從打開(kāi)的文件讀取的字節(jié)數(shù)。
該方法從文件的開(kāi)始位置開(kāi)始讀取,如果 n 不指定值,則讀取全文。
4、文件位置
tell()方法
用于獲取文件中的當(dāng)前位置; 換句話說(shuō),下一次讀取或?qū)懭雽l(fā)生在從文件開(kāi)始處之后的多個(gè)字節(jié)數(shù)的位置。
seek(offset [,from])方法:
更改當(dāng)前文件位置。 offset參數(shù)表示要移動(dòng)的字節(jié)數(shù)。 from參數(shù)指定要移動(dòng)字節(jié)的引用位置。
from參數(shù):
設(shè)置為0,則將文件的開(kāi)頭作為參考位置。 如果設(shè)置為1,則將當(dāng)前位置用作參考位置。 如果設(shè)置為2,則文件的末尾將被作為參考位置。
5、重命名和刪除文件
Python os模塊 提供用于執(zhí)行文件處理操作(如重命名和刪除文件)的方法。要使用此模塊,需要先將它導(dǎo)入,然后可以調(diào)用任何相關(guān)的函數(shù)。
1、rename()方法
rename()方法 有兩個(gè)參數(shù),即 當(dāng)前的文件名 和 新的文件名。
2、remove()方法
remove()方法 通過(guò)提供要?jiǎng)h除的文件的名稱作為參數(shù)來(lái)刪除文件。
6、補(bǔ)充
1、Python 文件對(duì)象 的 方法
2、os模塊 的 方法 (略取了一部分)
7、文件讀取、寫入 (配合 文件選擇對(duì)話框) 代碼
1 # coding: utf-8
8、后言
還比較全,一般以后對(duì)文件的大部分操作都可以完成了。如果你還在入門糾結(jié),哈哈如果你還在苦惱怎么入門python,小編有個(gè)建議,可以加小編弄的一個(gè)Python交流基地,大家可以進(jìn)入交流基地:58937142,里面新手入門資料,可以說(shuō)從零到項(xiàng)目實(shí)戰(zhàn),都是可以免費(fèi)獲取的,還有程序員大牛為各位免費(fèi)解答問(wèn)題,熱心腸的小伙伴也是蠻多的。不失為是一個(gè)交流的的好地方,小編在這里邀請(qǐng)大家加入我的大家庭。歡迎你的到來(lái)。一起交流學(xué)習(xí)!共同進(jìn)步!小編等你!
python3進(jìn)階八:異常處理 企業(yè)視頻課程
在前面的學(xué)習(xí)中我們經(jīng)常會(huì)產(chǎn)生狠多錯(cuò)誤,比如:變量名沒(méi)定義,錯(cuò)誤的調(diào)用,等等,有些錯(cuò)誤在程序當(dāng)中我們必須正視修改過(guò)來(lái),但是有些錯(cuò)誤則需要我們能讓程序繼續(xù)運(yùn)行下去,例如:存儲(chǔ)錯(cuò)誤,互聯(lián)網(wǎng)請(qǐng)求錯(cuò)誤,等等python3有一套準(zhǔn)們針對(duì)錯(cuò)誤機(jī)制語(yǔ)句來(lái)幫助我們處理錯(cuò)誤。
本身python3就會(huì)有異常處理的返回機(jī)制,比如除零錯(cuò)誤
>>>1/0
Traceback (most recent call last):
File "
ZeroDivisionError: pision by zero
Traceback是回溯的意思也就是找到一個(gè)錯(cuò)誤發(fā)生的地方,在第幾行的那個(gè)模塊中,這里我們返回的錯(cuò)誤名稱是ZeroDivisionError除零錯(cuò)誤,給出的解釋就是除以零。實(shí)際上每個(gè)異常都是一個(gè)類這個(gè)例子是ZeroDivisionError的實(shí)例,并且有很多種方法可以進(jìn)行捕捉,使程序?qū)Σ蹲降腻e(cuò)誤進(jìn)行處理而不是中斷程序的運(yùn)行。
錯(cuò)誤是可以用try except finally來(lái)處理,當(dāng)程序遇到一些可以可能預(yù)見(jiàn)的錯(cuò)誤時(shí)我們可以有這一機(jī)制來(lái)處理
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
try:
print('try...')
x = int(input('enter number'))
y = 1 / x
print('result:', y)
except ZeroDivisionError as e:
print('except:', e)
finally:
print('finally...')
print('END')
編寫一個(gè)捕捉錯(cuò)誤的代碼,首先先用try:將可能產(chǎn)生錯(cuò)誤的代碼范圍框住,然后是程序呢代碼,這里我安排了一個(gè)我安排了一個(gè)自行輸入除數(shù)有可能除數(shù)為零的代碼,如果產(chǎn)生錯(cuò)誤則跳至代碼塊except模塊except ZeroDivisionError as e:這句的意思是,如果產(chǎn)生了異常,并且這個(gè)異常是ZeroDivisionError時(shí),把ZeroDivisionError類里面的錯(cuò)誤解釋用as關(guān)鍵字實(shí)例化給e,然后在進(jìn)行打印,最后如果有finally語(yǔ)句塊則執(zhí)行這個(gè)語(yǔ)句塊.
D\text>python error.py
try...
enter number1
result: 1.0
finally...
END
enter number0
except: pision by zero
可以看到,觸發(fā)了異常之后打印異常然后繼續(xù)運(yùn)行程序。
如果有多個(gè)錯(cuò)誤處理的話我們可以把上面的代碼再做修改
except ValueError as e:
print('except',e)
print(type(e))
這個(gè)例子中我們?cè)谳斎霑r(shí)輸入一個(gè)字符,系統(tǒng)就會(huì)拋出一個(gè)ValueError錯(cuò)誤,同樣我們用except捕捉到再打印出來(lái),多重錯(cuò)誤判斷及捕獲可以用以上方法。
使用try...except捕獲錯(cuò)誤還有一個(gè)巨大的好處,就是可以跨越多層調(diào)用,比如函數(shù)main()調(diào)用foo(),foo()調(diào)用bar(),結(jié)果bar()出錯(cuò)了,這時(shí),只要main()捕獲到了,也就是說(shuō)不需要在每個(gè)可能出現(xiàn)錯(cuò)誤的地方用try except,只要在合適的層次寫上即可
不過(guò)既然錯(cuò)誤信息一種類我們也可以自己來(lái)定義一個(gè)錯(cuò)誤類
class SelfError(ValueError):
pass
def foo(s):
n = int(s)
if n==0:
raise SelfError('invalid value: %s' % s)
return 10 / n
自己定義的錯(cuò)誤類class SelfError(ValueError):
在s =0的時(shí)候可以觸發(fā),觸發(fā)引入錯(cuò)誤類時(shí)用關(guān)鍵字raise
raise語(yǔ)句如果不帶參數(shù),就會(huì)把當(dāng)前錯(cuò)誤原樣拋出。此外,在except中raise一個(gè)Error,還可以把一種類型的錯(cuò)誤轉(zhuǎn)化成另一種類型:
10 / 0
except ZeroDivisionError:
raise ValueError('input error!')
以上代碼中本身已經(jīng)有捕獲到ZeroDivisionError錯(cuò)誤了,但是 raise ValueError把這個(gè)錯(cuò)誤強(qiáng)行轉(zhuǎn)換成了ValueError并且錯(cuò)誤信息為'input error!
python3網(wǎng)絡(luò)爬蟲(chóng) (6)-分析知乎問(wèn)題頁(yè)面數(shù)據(jù) 企業(yè)視頻課程
注:本文只做數(shù)據(jù)來(lái)源分析,暫未抓取數(shù)據(jù)
1. 打開(kāi)知乎頁(yè)面(地址來(lái)自上次爬蟲(chóng)爬取的數(shù)據(jù))
示例: https://zhihu/question/41508191
2. 打開(kāi)可以看到需要抓取的數(shù)據(jù)有(標(biāo)簽、標(biāo)題、描述、答案)
頁(yè)面
3. 查看網(wǎng)頁(yè)請(qǐng)求狀況(由于該問(wèn)題答案較少,暫時(shí)用 https://zhihu/question/65381487 查看接口數(shù)據(jù))
可以發(fā)現(xiàn)答案的接口。(還有相似問(wèn)題和相關(guān)live,暫時(shí)沒(méi)有用到)
查看接口
4. 由于我們請(qǐng)求到的網(wǎng)頁(yè)中的js是不會(huì)執(zhí)行的,所以我們先禁用瀏覽器js(js禁用方法,請(qǐng)自行百度)
禁用js后的頁(yè)面
5. 接口只能看到答案,所以我們還需要在頁(yè)面上找到其他數(shù)據(jù)
經(jīng)過(guò)對(duì)比發(fā)現(xiàn),js執(zhí)行過(guò)的描述是有圖片的,但是js未執(zhí)行的沒(méi)有圖片,描述不夠完整。
但是沒(méi)有描述的請(qǐng)求,所以,猜測(cè)描述被隱藏在了頁(yè)面的其他地方
搜索中的描述部分內(nèi)容,可以發(fā)現(xiàn)確實(shí)被隱藏在了標(biāo)簽中
6. 將描述內(nèi)容格式化
格式化后發(fā)現(xiàn),需要獲取的標(biāo)簽、標(biāo)題、描述等信息均在里面,不用再去網(wǎng)站上查找其他接口
格式化數(shù)據(jù)
喜歡就點(diǎn)個(gè)贊吧!