『壹』 如何用python提取網頁標簽中的文本信息
提供兩種思路 僅供參考:
一、使用內置的正則表達式
from bs4 import BeautifulSoup
html = ("<div class="question">
"
"<span><a class="normal" name="question-2c26d7bd-90c1-415a-b881-2c560414340b">1、</a></span> 以下哪條不是VRRP雙主可能的原因
"
"</div>")
soup = BeautifulSoup(html,"html.parser")
text = soup.get_text()
print(text)
『貳』 用python selenium提取網頁中的所有<a>標簽中的超級鏈接地址
提取所有鏈接應該用循環:
urls=driver.find_elements_by_xpath("//a")
forurlinurls:
print(url.get_attribute("href"))
如果get_attribute方法報錯應該是沒有找到a標簽對象,如果確定是有的話,可能是頁面載入比較慢還沒載入出來,selenium默認是不會等待對象出現的,需要在找對象前加一些等待時間;另外如果頁面上有iframe的話需要先切換進去才能找到裡面的對象。
『叄』 濡備綍鎶撳彇緗戦〉涓婄殑鏁版嵁(濡備綍浣跨敤Python榪涜岀綉欏墊暟鎹鎶撳彇)
鍦ㄥ綋浠婁俊鎮鐖嗙偢鐨勬椂浠o紝緗戦〉涓婅暣鈃忕潃澶ч噺鐨勬暟鎹錛屽逛簬璁稿氶嗗煙鐨勭爺絀跺拰搴旂敤鏉ヨ達紝鑾峰彇緗戦〉涓婄殑鏁版嵁鏄闈炲父閲嶈佺殑銆侾ython浣滀負涓縐嶇畝鍗曟槗瀛︿笖鍔熻兘寮哄ぇ鐨勭紪紼嬭璦錛岃騫挎硾搴旂敤浜庣綉欏墊暟鎹鎶撳彇銆傛湰鏂囧皢浠嬬粛濡備綍浣跨敤Python榪涜岀綉欏墊暟鎹鎶撳彇鐨勬搷浣滄ラゃ
涓銆佸畨瑁匬ython鍜岀浉鍏沖簱
瑕佷嬌鐢≒ython榪涜岀綉欏墊暟鎹鎶撳彇錛岄栧厛闇瑕佸畨瑁匬ython瑙i噴鍣ㄣ傚彲浠ヤ粠Python瀹樻柟緗戠珯涓嬭澆騫跺畨瑁呮渶鏂扮殑Python鐗堟湰銆傚畨瑁呭畬鎴愬悗錛岃繕闇瑕佸畨瑁呬竴浜涚浉鍏崇殑Python搴擄紝濡俽equests銆乥eautifulsoup銆乻elenium絳夈傚彲浠ヤ嬌鐢╬ip鍛戒護鏉ュ畨瑁呰繖浜涘簱錛屼緥濡傚湪鍛戒護琛屼腑杈撳叆浠ヤ笅鍛戒護鏉ュ畨瑁卹equests搴擄細
```
pipinstallrequests
```
浜屻佷嬌鐢╮equests搴撹幏鍙栫綉欏靛唴瀹
requests鏄涓涓鍔熻兘寮哄ぇ涓旀槗浜庝嬌鐢ㄧ殑HTTP搴擄紝鍙浠ョ敤鏉ュ彂閫丠TTP璇鋒眰騫惰幏鍙栫綉欏靛唴瀹廣備笅闈㈡槸涓涓浣跨敤requests搴撹幏鍙栫綉欏靛唴瀹圭殑紺轟緥浠g爜錛
```python
importrequests
url="https://www.example.com"
response=requests.get(url)
html=response.text
print(html)
```
鍦ㄨ繖涓紺轟緥涓錛屾垜浠棣栧厛瀵煎叆浜唕equests搴擄紝鐒跺悗鎸囧畾浜嗚佽幏鍙栫殑緗戦〉URL銆備嬌鐢╮equests.get()鏂規硶鍙戦丟ET璇鋒眰錛屽苟灝嗚繑鍥炵殑鍝嶅簲瀵硅薄璧嬪肩粰response鍙橀噺銆傛渶鍚庯紝閫氳繃response.text灞炴ц幏鍙栫綉欏電殑鍐呭癸紝騫舵墦鍗拌緭鍑恆
涓夈佷嬌鐢╞eautifulsoup搴撹В鏋愮綉欏靛唴瀹
beautifulsoup鏄涓涓鐢ㄤ簬瑙f瀽HTML鍜孹ML鏂囨。鐨凱ython搴擄紝鍙浠ユ柟渚垮湴浠庣綉欏典腑鎻愬彇鎵闇鐨勬暟鎹銆備笅闈㈡槸涓涓浣跨敤beautifulsoup搴撹В鏋愮綉欏靛唴瀹圭殑紺轟緥浠g爜錛
```python
frombs4importBeautifulSoup
soup=BeautifulSoup(html,"html.parser")
title=soup.title.text
print(title)
```
鍦ㄨ繖涓紺轟緥涓錛屾垜浠棣栧厛瀵煎叆浜咮eautifulSoup綾伙紝鐒跺悗灝嗕箣鍓嶈幏鍙栧埌鐨勭綉欏靛唴瀹筯tml浣滀負鍙傛暟浼犻掔粰BeautifulSoup綾葷殑鏋勯犲嚱鏁幫紝鍒涘緩涓涓狟eautifulSoup瀵硅薄soup銆傞氳繃soup.title.text灞炴у彲浠ヨ幏鍙栫綉欏電殑鏍囬橈紝騫舵墦鍗拌緭鍑恆
鍥涖佷嬌鐢╯elenium搴撴ā鎷熸祻瑙堝櫒琛屼負
selenium鏄涓涓鑷鍔ㄥ寲嫻嬭瘯宸ュ叿錛屼篃鍙浠ョ敤鏉ユā鎷熸祻瑙堝櫒琛屼負榪涜岀綉欏墊暟鎹鎶撳彇銆備嬌鐢╯elenium搴撳彲浠ユ墽琛孞avaScript浠g爜銆佹ā鎷熺偣鍑繪寜閽銆佸~鍐欒〃鍗曠瓑鎿嶄綔銆備笅闈㈡槸涓涓浣跨敤selenium搴撴ā鎷熸祻瑙堝櫒琛屼負鐨勭ず渚嬩唬鐮侊細
```python
fromseleniumimportwebdriver
driver=webdriver.Chrome()
driver.get(url)
button=driver.find_element_by_xpath("//button[@id='btn']")
button.click()
```
鍦ㄨ繖涓紺轟緥涓錛屾垜浠棣栧厛瀵煎叆浜唚ebdriver綾伙紝鐒跺悗鍒涘緩涓涓狢hrome嫻忚堝櫒瀵硅薄driver銆傞氳繃driver.get()鏂規硶鎵撳紑鎸囧畾鐨勭綉欏點傛帴涓嬫潵錛屼嬌鐢╠river.find_element_by_xpath()鏂規硶鎵懼埌欏甸潰涓婄殑鎸夐挳鍏冪礌錛屽苟浣跨敤click()鏂規硶妯℃嫙鐐瑰嚮鎸夐挳鐨勬搷浣溿
浜斻佸叾浠栧父鐢ㄧ殑緗戦〉鏁版嵁鎶撳彇鎶宸
闄や簡涓婅堪浠嬬粛鐨勫熀鏈鎿嶄綔澶栵紝榪樻湁涓浜涘父鐢ㄧ殑緗戦〉鏁版嵁鎶撳彇鎶宸у彲浠ユ彁楂樻姄鍙栨晥鐜囧拰鍑嗙『鎬с備緥濡傦紝鍙浠ヤ嬌鐢ㄦe垯琛ㄨ揪寮忔潵鍖歸厤鍜屾彁鍙栫壒瀹氭牸寮忕殑鏁版嵁錛涘彲浠ヤ嬌鐢ㄤ唬鐞嗘湇鍔″櫒鏉ラ殣鈃廔P鍦板潃鍜屾彁楂樿塊棶閫熷害錛涘彲浠ヤ嬌鐢ㄥ氱嚎紼嬫垨寮傛IO鏉ュ苟鍙戞姄鍙栧氫釜緗戦〉絳夈
『肆』 Python怎樣獲取XPath下的A標簽的內容
1、在瀏覽器中打開網頁。然後//div,就可以找到頁面中的所有div了,因為//表示的是任意目錄下查找。如圖,頁面有兩個div,所以可以找到兩個。
6、斜杠/表示的是獲取子元素,比如div下面有兩個子元素p,那麼//div[2]/p獲取的就是第二個div的子元素p。