‘壹’ 如何用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。